455、分发饼干
思路:最优子问题是从大到小遍历每个小孩的胃口,用从大到小的饼干来喂,感觉有点类似双指针。
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int res = 0;
int j = s.length - 1;
for(int i = g.length - 1; i >= 0; i--){
while(j >= 0 && s[j] >= g[i]){
res++;
j--;
break;
}
}
return res;
}
}
376、摆动序列
class Solution {
public int wiggleMaxLength(int[] nums) {
int cur = 0;
int pre = 0;
int res = 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)){
res++;
pre = cur;
}
}
return res;
}
}
53、最大子数组和
class Solution {
public int maxSubArray(int[] nums) {
int sum = nums[0];
int max = nums[0];
for(int i = 1; i <nums.length; i++){
if(sum < 0){
sum = 0;
}
sum += nums[i];
if(sum > max){
max = sum;
}
}
return max;
}
}