● 455.分发饼干
class Solution { public int findContentChildren(int[] g, int[] s) { //首先对饼干和孩子胃口进行排序 Arrays.sort(g); Arrays.sort(s); int start = 0; int count = 0; for(int i = 0;i<s.length&&start<g.length;i++){ // 这里要用&& ,不能用',' if(s[i]>=g[start]){ start++; count ++; } } return count; } }
● 376. 摆动序列
class Solution { public int wiggleMaxLength(int[] nums) { if(nums.length<=1){ return nums.length; } int curdiff =0; int prediff =0; int count = 1; // 默认初始值为1 for(int i = 1;i<nums.length;i++){ curdiff = nums[i] - nums[i-1]; if(curdiff>0&&prediff<=0 || curdiff<0 && prediff>=0){ count ++; prediff = curdiff; } } return count; } }
● 53. 最大子序和
贪心思想:一旦count<0,我们就对其从使count<0的下一个元素开始
重新count,并且设置一个哨兵来标记我们的最大值
class Solution { public int maxSubArray(int[] nums) { if(nums.length==1){ return nums[0]; } int sum = Integer.MIN_VALUE; int count =0 ; for(int i = 0 ;i<nums.length;i++){ count += nums[i]; sum = Math.max(sum,count); if(count <= 0){ count = 0; } } return sum; } }