做网站公司三年财务预算表,南昌成都网站建设方案,网络营销渠道特点,多用户+wordpress455.分发饼干
为了满足更多的小孩#xff0c;就不要造成饼干尺寸的浪费
大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子#xff0c;那么就应该优先满足胃口大的
这里的局部最优就是大饼干喂给胃口大的#xff0c;充分利用饼干尺寸喂饱一个#xff0c;全局最…455.分发饼干
为了满足更多的小孩就不要造成饼干尺寸的浪费
大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子那么就应该优先满足胃口大的
这里的局部最优就是大饼干喂给胃口大的充分利用饼干尺寸喂饱一个全局最优就是喂饱尽可能多的小孩
可以尝试使用贪心策略先将饼干数组和小孩数组排序。
然后从后向前遍历小孩数组用大饼干优先满足胃口大的并统计满足小孩数量
class Solution {
public:int findContentChildren(vectorint g, vectorint s) {sort(g.begin(), g.end());sort(s.begin(), s.end());int index s.size() - 1; // 饼干数组的下标int result 0;for (int i g.size() - 1; i 0; i--) { // 遍历胃口if (index 0 s[index] g[i]) { // 遍历饼干result;index--;}}return result;}
};时间复杂度O(nlogn)空间复杂度O(1)
376. 摆动序列
class Solution {
public:int wiggleMaxLength(vectorint nums) {int prediff 0;int curdiff 0;int result 1;for(int i 0; i nums.size() - 1; i){curdiff nums[i 1] - nums[i];if((prediff 0 curdiff 0) || (prediff 0 curdiff 0)){prediff curdiff;result;}}return result;}
};时间复杂度O(n)空间复杂度O(n)
53. 最大子序和
注意两点
什么时候选择起始位置遇到负数就停止还是和为负数就停止
遇到负数的时候不应该停止因为后面可能有更大的正数可加当和为负数的时候就该停止了因为这个负数只会拖累后面的数可以用result来记录最大值
result的最小值应该初始化为什么初始化为0吗那如果数组中只有负数怎么办
因此result应该初始化为无穷小
class Solution {
public:int maxSubArray(vectorint nums) {int result INT_MIN;int count 0;for(int i 0; i nums.size(); i){count nums[i];result count result ? count : result;if(count 0){count 0;}}return result;}
};