zoukankan      html  css  js  c++  java
  • Leetcode--53. 最大子序和

    package soloproject;
    
    /**
     * 最大子序和
     * 
     * @author GGGXXC
     *
     */
    public class MaxSubseqSum {
        public static void main(String[] args) {
            int[] nums = new int[] { -2, 1, -3, 4, -1, 2, 1, -5, 4 };
    
            System.out.println(maxSubArray(nums));
        }
    
        /**
         * 最大子序和核心算法
         * 
         * @param nums 传入的数组
         * @return 返回最大和
         */
        public static int maxSubArray(int[] nums) {
    
            /**
             * 初始值设置为数组第一项,保存的为当前最大子序和
             */
            int allSum = nums[0];
    
            /**
             * 当数组中出现负值后,重新开始的新子序和
             */
            int curSum = 0;
            for (int n : nums) {
                if (curSum < 0) {
                    curSum = 0;
                }
    
                /**
                 * 加上新数字之后的新子序和和历史最大子序和进行比较
                 */
                curSum += n;
                allSum = Math.max(allSum, curSum);
    
            }
            return allSum;
        }
    }
  • 相关阅读:
    0615-temp-python web
    ResultSet 转ArrayList
    svn与git
    日期与时间
    springboot 注解
    函数式编程
    几个O
    springboot框架中的异步执行
    JDBC
    mysql 导出表结构
  • 原文地址:https://www.cnblogs.com/raising/p/12865877.html
Copyright © 2011-2022 走看看