455.分发饼干
贪心第一题,简单。
376.摆动序列
参考解法代码很简洁,但第一次看到还真想不到。
按自己模拟的思路写是写出来了,时间复杂度也是O(n),运行挺快,但代码看起来比较多。。
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
int count = 1;
bool wave = true;
int i = 1;
for (; i < nums.size(); i++) {
if (nums[i] - nums[0] > 0) {
wave = true;//增
count++;
break;
}
else if (nums[i] - nums[0] < 0) {
wave = false;//减
count++;
break;
}
}
int slowIndex = i;
for (i++; i < nums.size(); i++) {
if (wave) {
while (i < nums.size() && nums[i] >= nums[slowIndex]) {
slowIndex = i;
i++;
}
if (i == nums.size()) break;
wave = false;
slowIndex = i;
count++;
}
else {
while (i < nums.size() && nums[i] <= nums[slowIndex]) {
slowIndex = i;
i++;
}
if (i == nums.size()) break;
wave = true;
slowIndex = i;
count++;
}
}
return count;
}
};
53.最大子数组和
这题也不好想,但也是想出来了。做完这三题确实感觉贪心思路主要靠模拟,即使是常识,有时候也不好写。
1679

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



