提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
一、力扣455. 分发饼干
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int count = 0;
boolean[] flag = new boolean[g.length];
boolean[] pp = new boolean[s.length];
for(int i = 0; i < s.length; i ++){
for(int j = 0; j < g.length; j ++){
if(s[i] >= g[j] && !flag[j] && !pp[i]){
flag[j] = true;
pp[i] = true;
count ++;
}
}
}
return count;
}
}
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int count = 0;
for(int i = 0, j = 0; i< g.length && j < s.length; ){
if(s[j] >= g[i]){
count ++;
i ++; j ++;
}else{
j ++;
}
}
return count;
}
}
二、力扣376. 摆动序列
class Solution {
public int wiggleMaxLength(int[] nums) {
if(nums.length <= 1){
return nums.length;
}
int count = 1;
int preDiff = 0, curDiff = 0;
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. 最大子数组和
class Solution {
public int maxSubArray(int[] nums) {
int res = Integer.MIN_VALUE;
int count = 0;
for(int i = 0; i < nums.length; i ++){
count += nums[i];
if(count > res){
res = count;
}
if(count < 0){
count = 0;
}
}
return res;
}
}
本文介绍了力扣平台上的三个编程问题:455题分发饼干的最优分配策略,376题摆动序列的最长连续序列,以及53题最大子数组和的求解方法。涉及数组排序和动态规划技巧。
881

被折叠的 条评论
为什么被折叠?



