LeetCode--No.53--Maximum Subarray

来源:互联网 发布:yessuperstore淘宝 编辑:程序博客网 时间:2024/05/16 14:56

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [−2,1,−3,4,−1,2,1,−5,4],

the contiguous subarray [4,−1,2,1] has the largest sum = 6.

以下是我写的第一版特别烂的代码=。=orz

public class Solution {    public int maxSubArray(int[] nums) {        int max = nums[0];        int sum = 0;        for(int i = 0; i < nums.length; i++){            if (nums[i] > max)            {                max = nums[i];            }        }        if (max <= 0){            return max;        }        else{            for(int i = 0; i < nums.length; i++){                if (nums[i] > 0){                    sum = nums[i];                    if (sum > max)                        max = sum;                    for(int j = i+1; j < nums.length; j++){                        sum = sum + nums[j];                        if (sum < 0)                            break;                        if (sum > max)                            max = sum;                    }                }            }        }        return max;    }}


这个是从别人那里偷来的哈哈~~~侵删~~


public class Solution {    public int maxSubArray(int[] nums) {        int[] sum = new int[nums.length];        int max = nums[0];        sum[0] = nums[0];        for(int i = 1; i < nums.length; i++){            sum[i] = Math.max(nums[i],sum[i-1]+nums[i]);            max = Math.max(max,sum[i]);        }        return max;    }}



0 0
原创粉丝点击