题目链接

动态规划算法

如果求和小于零,那么后面的数加上前面的和一定小于自身,所以这时重新求和,sum置零,最后比较当前求和值与之前的最大子序值,选其大的

class Solution {
    public int maxSubArray(int[] nums) {
        if (nums == null || nums.length == 0) {
            return 0;
        }
        int Sum = 0;
        int Max = Integer.MIN_VALUE;
        for (int i = 0; i < nums.length; i++) {
           if(Sum < 0)  Sum = 0;
            Sum += nums[i];
            Max = Math.max(Sum,Max);
        }
        return Max;
    }
}

题目链接

这是一个简单的动态规划题,一次可以爬一层楼或者两层楼
所以状态转移方程climb(n) = climb(n-1) + climb(n-2)

class Solution {
    public int climbStairs(int n) {
        if(n==1) return 1;
        if(n==2) return 2;
        else return climbStairs(n-1)+climbStairs(n-2);
    }
}

春节期间亲戚聚在一起吃完了饭免不了聊闲话,听他们聊闲话真的是大开眼界,在我印象中和和睦睦美美好好的邻里关系婆媳关系父子关系朋友关系各种关系,简直就是暗流涌动,一团乱麻,比古代宫廷戏还复杂~
101af385dc66f42dcf92b01549987380.jpg