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

理论基础

https://programmercarl.com/贪心算法理论基础.html

455.分发饼干

https://programmercarl.com/0455.分发饼干.html

var findContentChildren = function (g, s) {
  g = g.sort((a, b) => a - b);
  s = s.sort((a, b) => a - b);
  let result = 0;
  let index = s.length - 1;
  for (let i = g.length - 1; i >= 0; i--) {
    if (index >= 0 && s[index] >= g[i]) {
      result++;
      index--;
    }
  }
  return result;
};
  1. 摆动序列

https://programmercarl.com/0376.摆动序列.html

比较难
/**
 * @param {number[]} nums
 * @return {number}
 */
var wiggleMaxLength = function(nums) {
    let len = nums.length;
    if (len<=1) return len;
    let preDiff = 0;
    let curDiff = 0;
    let result = 1;
    for (let i=0;i<len-1;i++) {
        curDiff = nums[i+1] - nums[i];
        if ((preDiff<=0 && curDiff>0) || (preDiff>=0 && curDiff<0)) {
            result++;
            preDiff = curDiff;
        }
    }
    return result;  
};
  1. 最大子序和

https://programmercarl.com/0053.最大子序和.html

/**
 * @param {number[]} nums
 * @return {number}
 */
var maxSubArray = function(nums) {
    let result = -Infinity;
    let 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;
};
posted @ 2024-06-10 21:55  YuanYF6  阅读(1)  评论(0编辑  收藏  举报