LeetCode:贪心算法
目录
一、分发饼干
二、摆动序列
三、最大子数组和
一、分发饼干
455. 分发饼干 - 力扣(LeetCode)
class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(s);Arrays.sort(g);int index=s.length-1;//饼干下标int result=0;//可满足的孩子数量for(int i=g.length-1;i>=0;i--){if(index>=0&&s[index]>=g[i]){//饼干的尺寸大于等于孩子的胃口result++;//满足的孩子+1index--;//下标左移}}return result;}
}
二、摆动序列
376. 摆动序列 - 力扣(LeetCode)
class Solution {public int wiggleMaxLength(int[] nums) {if(nums.length<=1)return nums.length;int cur=0;int pre=0;int result=1;for(int i=0;i<nums.length-1;i++){cur=nums[i+1]-nums[i];if((cur>0&&pre<=0)||(cur<0&&pre>=0)){result++;pre=cur;}}return result;}
}
三、最大子数组和
53. 最大子数组和 - 力扣(LeetCode)
class Solution {public int maxSubArray(int[] nums) {int result=Integer.MIN_VALUE;int count=0;for(int i=0;i<nums.length;i++){count+=nums[i];result=Math.max(count,result);if(count<=0)count=0;//相当于重置最大子序列起始位置,因为遇到负数一定是拉低总和}return result;}
}