码迷,mamicode.com
首页 > 其他好文 > 详细

第二周学习进度博客

时间:2019-03-10 17:29:33      阅读:144      评论:0      收藏:0      [点我收藏+]

标签:一个   子串   时间   max   进度   for   ati   print   贪心法   

所花时间(包括上课):周四下午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;
    }

}

 

第二周学习进度博客

标签:一个   子串   时间   max   进度   for   ati   print   贪心法   

原文地址:https://www.cnblogs.com/cuijunfeng/p/10506004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!