455.分发饼干
题目链接:Loading Question... - 力扣(LeetCode)
解题思路:局部最优就是全局最优
class Solution {
public int findContentChildren(int[] g, int[] s) {
int i = g.length - 1;
int j = s.length - 1;
int ans = 0;
Arrays.sort(g);
Arrays.sort(s);
while(i >= 0 && j >= 0){
if(g[i] <= s[j]){
ans++;
i--;
j--;
}
else{
i--;
}
}
return ans;
}
}
376.摆动序列
题目链接:Loading Question... - 力扣(LeetCode)
解题思路:默认最右边的值是属于摆动序列的。第一个结点的preDiff默认为0
class Solution {
public int wiggleMaxLength(int[] nums) {
int curDiff = 0;
int preDiff = 0; // 这个可能为0,起始位置默认它为0
int result = 1;
for(int i = 0; i < nums.length - 1; i++){
curDiff = nums[i + 1] - nums[i];
if((curDiff > 0 && preDiff <= 0) || (preDiff >= 0 && curDiff < 0)){
result++;
preDiff = curDiff;
}
}
return result;
}
}
52.最大子数组和
题目链接:Loading Question... - 力扣(LeetCode)
解题思路:
class Solution {
public int maxSubArray(int[] nums) {
// 就是一个求和的过程,当和小于0就直接抛弃前面的,负值归零
int ans = Integer.MIN_VALUE;
int sum = 0;
for(int i = 0; i < nums.length; i++){
sum += nums[i];
ans = Math.max(ans,sum);
if(sum < 0) sum = 0;
}
return ans;
}
}