目录
一、分发饼干
java
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++;//满足的孩子+1
index--;//下标左移
}
}
return result;
}
}
二、摆动序列
java
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;
}
}
三、最大子数组和
java
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;
}
}