1.分发饼干 leetcode 455
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int index_g = 0;
int index_s = 0;
while(index_g
if(g[index_g]<=s[index_s]){
index_g++;
index_s++;
}else{
index_s++;
}
}
return index_g;
}
}
2.摆动序列 leetcode 376
class Solution {
public int wiggleMaxLength(int[] nums) {
if(nums.length==1){
return 1;
}
//统计峰值
int res = 1;
int pre = 0;
int cur = 0;
for(int i=0;i
cur = nums[i+1] - nums[i];
if((cur>0&&pre<=0)||(cur<0&&pre>=0)){
res++;
pre = cur;
}
}
return res;
}
}
3.最大子数组和 leetcode 53
class Solution {
public int maxSubArray(int[] nums) {
int count = 0;
//初试化最小负数
int res = Integer.MIN_VALUE;;
for(int i=0;i
count+=nums[i];
if(res
res = count;
}
if(count<0){
count = 0;
}
}
return res;
}
}
4.买卖股票的最佳时机Ⅱ leetcode 122
class Solution {
public int maxProfit(int[] prices) {
int res = 0;
for(int i=0;i
int temp = prices[i+1]-prices[i];
if(temp>0){
res+=temp;
}
}
return res;
}
}
5.跳跃游戏 leetcode 55
class Solution {
public boolean canJump(int[] nums) {
//转换为最大覆盖范围,不关心当前位置跳多少步
int cover = 0;
if(nums.length==1){
return true;
}
for(int i=0;i<=cover;i++){
cover = Math.max(i+nums[i],cover);
if(cover>=nums.length-1){
return true;
}
}
return false;
}
}