algorithm/算法/learn/大厂刷题/Fourth.md

957 B

题目一

返回一个数组中,子数组最大累加和

每个数从左往右,依次求出每个数是否往左移动获取最大值,最后数组中最大值就是所求结果.

public class MaxSubArr {
    public int maxSubArray(int[] nums) {
        if (nums==null||nums.length==0){
            return 0;
        }
        int pre = nums[0];
        // 记录最大值,中间有些可能会忽略10,-10,5
        int max = nums[0];
        for (int i=1;i<nums.length;i++){
            pre = Math.max(pre + nums[i], nums[i]);
            max=Math.max(pre,max);
        }
        return max;
    }
}

题目三

返回二维数组中,子矩阵最大累加和

题目四

返回一个数组中,选择的数字不能相邻的情况下,最大子序列累加和

题目六

生成长度为size的达标数组,什么叫达标 达标:对于任意的i<k<j,满足[i]+[j]!=[k]*2 给定一个正数size,返回长度为size的达标数组