本文主要是介绍算法刷题记录 Day27,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
算法刷题记录 Day27
Date: 2024.03.22
lc 53. 最大子数组和
class Solution {
public:int maxSubArray(vector<int>& nums) {int res = 0;int maxx = INT_MIN;for(int i=0; i<nums.size(); i++){res += nums[i];maxx = max(maxx, res); // 存储当前的最大值// cout<<"maxx:"<<maxx<<endl;if(res < 0){res = 0;}}return maxx;}
};
lc 376. 摆动序列
class Solution {
public:int wiggleMaxLength(vector<int>& nums) {if(nums.size() == 1)return 1;if(nums.size() == 2){if(nums[0] == nums[1])return 1;elsereturn 2;}int max_len = 1;// 相当于将连续递减的元素舍去int flag = -1;for(int i=1; i<nums.size(); i++){if(flag == -1){if(nums[i] == nums[i-1])continue;else{if(nums[i] > nums[i-1])flag = 1; //比前一个大elseflag = 0;max_len++;}}else{if(flag == 1 && nums[i] < nums[i-1]){max_len++;flag = 0;}else if(flag == 1){continue;}else if(flag == 0 && nums[i] > nums[i-1]){max_len++;flag = 1;}else{continue;}}}return max_len;}
};
lc 455. 分发饼干
class Solution {
public:int findContentChildren(vector<int>& g, vector<int>& s) {//从胃口小的孩子开始,尽量喂最接近但大于等于其胃口的饼干。int res = 0;sort(g.begin(), g.end());sort(s.begin(), s.end());int p1=0, p2=0;while(p1 < g.size() && p2 < s.size()){//1. 当前饼干大于等于孩子的胃口,喂给他,res++, p1++, p2++;if(g[p1] <= s[p2]){res++;p1++;p2++;}//2. 如果当前饼干小于孩子胃口,指向下一块饼干else{p2++;}}return res;}
};
这篇关于算法刷题记录 Day27的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!