zoukankan      html  css  js  c++  java
  • leetcode53.最大子序和(遍历标记)

    package newleedcode;

    /**
    * 最大子序和
    * 判断一段连续数组里之和的最大值
    */
    public class LeedCode53 {
    public int maxSum(int[] num){
    //给最大值赋初始值
    int ans=num[0];
    //动态数
    int sum=0;
    //自动遍历,当动态数组小于0时即重置下标,更新新的连续数组,并将每一次结果进行比较,每次比较都将最大值存于ans
    for(int nums:num){
    //数值大于零时可加
    if(sum>0){
    sum+=nums;
    //数值小于零时重置连续数组位置
    }else {
    sum=nums;
    }
    //判断当前动态数组是否比最大值大,大即更新,不大即维持原连续数组【每次都录入当前连续数组最大值】
    ans=Math.max(ans,sum);
    }
    return ans;
    }

    public static void main(String args[]){
    int[] num={1,5,-3,6,8,-9};
    LeedCode53 leetCode53=new LeedCode53();
    System.out.println(leetCode53.maxSum(num));
    }
    }

    /**
    * leetcode提交代码
    * class Solution {
    * public int maxSubArray(int[] nums) {
    * //给最大值赋初始值
    * int ans=nums[0];
    * //动态数
    * int sum=0;
    * //自动遍历,当动态数组小于0时即重置下标,更新新的连续数组,并将每一次结果进行比较,每次比较都将最大值存于ans
    * for(int num:nums){
    * //数值大于零时可加
    * if(sum>0){
    * sum+=num;
    * //数值小于零时重置连续数组位置
    * }else {
    * sum=num;
    * }
    * //判断当前动态数组是否比最大值大,大即更新,不大即维持原连续数组【每次都录入当前连续数组最大值】
    * ans=Math.max(ans,sum);
    * }
    * return ans;
    * }
    * }
    */
  • 相关阅读:
    JAVA CAS原理深度分析
    Java 并发类库AbstractQueuedSynchronizer 分析
    构建高并发高可用的电商平台架构实践
    简单控件 复合控件
    WebFrom基础
    控件m
    控件
    WinForm
    操作数据类m
    数据操作类
  • 原文地址:https://www.cnblogs.com/shudaixiongbokeyuan/p/13592396.html
Copyright © 2011-2022 走看看