第八章 贪心算法 part01(● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和 )

学习目标:

● 理论基础
● 455.分发饼干
● 376. 摆动序列
● 53. 最大子序和


学习内容:● 理论基础

https://programmercarl.com/%E8%B4%AA%E5%BF%83%E7%AE%97%E6%B3%95%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html
第八章 贪心算法 part01(● 理论基础 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和 )_第1张图片
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。(手动模拟一下感觉可以局部最优推出整体最优,而且想不到反例,那么就试一试贪心。)
贪心算法一般分为如下四步:
将问题分解为若干个子问题
找出适合的贪心策略
求解每一个子问题的最优解
将局部最优解堆叠成全局最优解


学习内容:● 455.分发饼干

https://programmercarl.com/0455.%E5%88%86%E5%8F%91%E9%A5%BC%E5%B9%B2.html
tip:先遍历的胃口,在遍历的饼干

两个数组要先排序
for循环里是if判断才正确
if判断:如果条件满足,就执行代码;不满足,就不能执行代码。
while:如果条件满足,就执行代码;然后再判断条件是否满足,还满足,就一直循环执行代码,直到不满足才执行后面代码
var findContentChildren = function(g, s) {
     g = g.sort((a, b) => a - b);
     s = s.sort((a, b) => a - b);
    let index = s.length-1
    let result = 0
    for(let i=g.length-1;i>=0;i--){
        if(index>=0&&g[i]<=s[index]){
            index--;
            result++
        }
    }
    return result    
};

学习内容:● 376. 摆动序列

https://programmercarl.com/0376.%E6%91%86%E5%8A%A8%E5%BA%8F%E5%88%97.html

 if(nums.length<=1)return nums.length//直接返回数组长度
 let result = 1;//记录峰值个数,序列默认序列最右边有一个峰值(数组首尾两端)
 (preDiff <= 0 && curDiff > 0) || (preDiff >= 0 && curDiff < 0)//上下坡中有平坡
 preDiff = curDiff; // 注意这里,只在摆动变化的时候更新prediff(单调坡度有平坡)
var wiggleMaxLength = function(nums) {
       if(nums.length<=1)return nums.length
	   let result = 1;
	   let pre = 0;
	   let cur = 0;
	   for(let i=0;i<nums.length-1;i++){
	       cur = nums[i+1]-nums[i]
	       if(pre>=0&&cur<0||pre<=0&&cur>0){
	           result++;
	           pre = cur
	       }
	   }
	   return result
};

学习内容:● 53. 最大子序和

https://programmercarl.com/0053.%E6%9C%80%E5%A4%A7%E5%AD%90%E5%BA%8F%E5%92%8C.html
tip:连续和是负数时,取下一个值作为起始值

 let result = -Infinity;//最小值
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
};

你可能感兴趣的:(算法笔记,贪心算法,算法)