做网站界面设计大小,dw做的网站与浏览器不匹配,官方网站建设的公司,手机建站平台题目
给你一个整数数组 nums #xff0c;请你找出一个具有最大和的连续子数组#xff08;子数组最少包含一个元素#xff09;#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1#xff1a; 输入#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出#xf…题目
给你一个整数数组 nums 请你找出一个具有最大和的连续子数组子数组最少包含一个元素返回其最大和。 子数组 是数组中的一个连续部分。 示例 1 输入nums [-2,1,-3,4,-1,2,1,-5,4] 输出6 解释连续子数组 [4,-1,2,1] 的和最大为 6 。
分析
求连续子数组的和我们可以用一个变量cur记录连续子数组的最大和当cur加上当前元素比当前元素还要小的时候说明不能再继续累加了往后遍历的时候就应该用当前元素的值作为cur的初始值。同时遍历的过程中不停的取cur的最大值
public class maximumSubarray {public static void main(String[] args) {int[] arr {-2,1,-3,4,-1,2,1,-5,4};System.out.println(getMax(arr));}public static int getMax(int[] arr) {int len arr.length;int cur 0;int res 0;for(int i 0;ilen;i) {cur Math.max(curarr[i],arr[i]);res Math.max(res,cur);}return res;}
}