- 分发饼干
class Solution {
public int findContentChildren(int[] g, int[] s) {
Arrays.sort(g);
Arrays.sort(s);
int m = g.length, n = s.length;
int count = 0;
for (int i = 0, j = 0; i < m && j < n; i++, j++) {
while (j < n && g[i] > s[j]) {
j++;
}
if (j < n) {
count++;
}
}
return count;
}
}
- 摆动序列
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
if(nums.size() == 1) return 1;
int predif = 0, curdif = 0;
int result = 1;
for(int i = 0; i < nums.size() - 1; i++)
{
curdif = nums[i + 1] - nums[i];
if((predif >= 0 && curdif < 0) || (predif <= 0 && curdif > 0))
{
result++;
predif = curdif;
}
}
return result;
}
};
- 最大子数组和
class Solution {
public:
int maxSubArray(vector<int>& nums) {
vector<int> dp(nums.size());
dp[0] = nums[0];
int result = dp[0];
for(int i = 1; i < nums.size(); i++)
{
dp[i] = max(dp[i - 1] + nums[i], nums[i]);
if(dp[i] > result)
result = dp[i];
}
return result;
}
};