方法:贪心
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(), g.end());
sort(s.begin(), s.end());
int res = 0, idx = 0;
for (int i = 0; i < s.size(); ++i) {
if (idx < g.size() && s[i] >= g[idx]) {
++idx;
++res;
}
}
return res;
}
};
$时间复杂度O(n),空间复杂度O(1)
方法:贪心
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
int pos = 0, pre = 0, res = 1;
for (int i = 1; i < nums.size(); ++i) {
pos = nums[i] - nums[i-1];
if (pos > 0 && pre <= 0 || pos < 0 && pre >= 0) {
pre = pos;
++res;
}
}
return res;
}
};
$时间复杂度O(n),空间复杂度O(1)
方法:贪心
class Solution {
public:
int maxSubArray(vector<int>& nums) {
int res = INT_MIN;
int cur = 0;
for (int i = 0; i < nums.size(); ++i) {
cur += nums[i];
if (cur > res) res = cur;
if (cur < 0) cur = 0;
}
return res;
}
};
$时间复杂度O(n),空间复杂度O(1)
方法:dp
class Solution {
public:
int maxSubArray(vector<int>& nums) {
vector<int> dp(nums.size());
dp[0] = nums[0];
int res = nums[0];
for (int i = 1; i < nums.size(); ++i) {
dp[i] = max(dp[i-1] + nums[i], nums[i]);
res = max(res, dp[i]);
}
return res;
}
};
$时间复杂度O(n),空间复杂度O(n)