代码随想录算法训练营第二十七天| 455.分发饼干、376. 摆动序列、53. 最大子序和

35 阅读1分钟

贪心算法

455.分发饼干

相关链接:题目链接文章讲解 视频讲解

解题思路

代码实现

var findContentChildren = function(g, s) {
    g.sort((a,b)=>{
        return b-a;
    })
    s.sort((a,b)=>{
        return b-a;
    })
    console.log(g,s)
    let res=0;
    let idx = 0;
    for(let i=0;i<g.length;i++){
        if(idx < s.length && s[idx] >= g[i]){
            res++;
            idx++;
        }
    }
    return res;
};

376. 摆动序列

相关链接:题目链接文章讲解 视频讲解

解题思路

代码实现

var wiggleMaxLength = function(nums) {
    if(nums.length ===1){
        return 1;
    }
    var prediff = 0;
    var curdiff = 0;
    var result =1;

    for(let i =0;i<nums.length-1;i++){
        curdiff = nums[i + 1] -nums[i];
        if((prediff>=0 && curdiff < 0)  ||(prediff<=0 && curdiff > 0)){
            result++;
            prediff = curdiff;
        }
    }
    return result;
};

53. 最大子序和

相关链接:题目链接文章讲解 视频讲解

解题思路

代码实现

var maxSubArray = function(nums) {
    var result =-Infinity;
    var count =0;
    for(let i=0;i<nums.length;i++){
        count += nums[i];
        if(count>result) result = count;
        if(count < 0) count = 0;

    }
    return result;
};