第二周学习进度博客
所花时间(包括上课):周四下午4小时+周五下午2小时+周六上午3小时=9小时
代码量:30行
博客量:两篇,分别是“第二周学习进度博客”和“软件工程第一周开课博客”
知识点:返回一个整数数组中最大子数组的和可以用贪心法来完成,确实是比较简洁的代码
package bao; public class Grope { public static void main(String[] args) { int arr[] = { 2, -3, 4, 11, -5, 8, 3, -6 }; int maxSum = getMaxSum2(arr); System.out.println("最大子数组的和为:" + maxSum); } private static int getMaxSum(int[] arr) { int max = -100000; for (int i = 0; i < arr.length; i++) { int sum = 0; for (int j = i; j < arr.length; j++) { sum += arr[j]; if (max < sum) { max = sum; } } } return max; } // 贪心法 private static int getMaxSum2(int[] arr) { int n = arr.length; int max = -1000000; int sum = 0; for (int i = 0; i < n; i++) { sum += arr[i]; if (sum > max) { max = sum; } if (sum < 0) { max = 0; // 子串和为负数,丢掉 } } return max; } }