455.分发饼干
class Solution {
public int findContentChildren(int[] g, int[] s) {
int result = 0;
int index = s.length -1;
Arrays.sort(g);
Arrays.sort(s);
for(int i = g.length -1;i>=0;i--){
if(index >=0 && s[index]>=g[i]){
result ++;
index--;
}
}
return result;
}
}
- 摆动序列
class Solution {
public int wiggleMaxLength(int[] nums) {
// int[] newNums = new int[nums.length+1];
// newNums[0] = nums[0];
// System.arraycopy(nums, 0, newNums, 1, nums.length);
// //峰值数量
// int result = 1;
// if (nums.length <= 1) return nums.length;
// if(nums.length ==2){
// if(nums[0]==nums[1]) return 1;
// else return 2;
// }
// for(int i = 1;i<newNums.length-1;i++){
// if((newNums[i] - newNums[i-1]>=0 && newNums[i] - newNums[i+1] >0)
// ||(newNums[i] - newNums[i-1]<=0 && newNums[i] - newNums[i+1] <0) ){
// result ++;
// }
// }
// return result;
int result = 1;
int prediff = 0;
int curdiff = 0;
for(int i = 0;i<nums.length-1;i++){
curdiff = nums[i+1]-nums[i];
if((prediff >=0 && curdiff<0) || (prediff <=0 && curdiff>0)){
result ++;
//摆动的时候记录
prediff = curdiff;
}
}
return result;
}
}
- 最大子序和
class Solution {
public int maxSubArray(int[] nums) {
// int result = Integer.MIN_VALUE;
// for(int i = 0;i<nums.length;i++){
// int sum = 0;
// for(int j = i;j<nums.length;j++){
// sum+=nums[j];
// result = sum>result ? sum:result;
// }
// }
// return result;
int result = Integer.MIN_VALUE;
int sum = 0;
for(int i = 0;i<nums.length;i++){
sum += nums[i];
result = sum>result ? sum : result;
if(sum < 0) sum = 0;
}
return result;
}
}