LeetCode75| 滑动窗口
2023-12-28 15:53:42
目录
643 子数组最大平均数 |
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
double sum = 0;
double res = 0;
for(int i = 0;i < k;i++)sum += nums[i];
res = sum / k;
int l = 0,r = k;
for(;r < nums.size();){
sum += nums[r++];
sum -= nums[l++];
res = max(res,sum / k);
}
return res;
}
};
时间复杂度O(n)
空间复杂度O(1)
1456 定长子串中元音的最大数目
class Solution {
public:
bool isVowel(char ch){
return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
}
int maxVowels(string s, int k) {
int res = 0;
for(int i = 0;i < k;i++){
res += isVowel(s[i]);
}
int temp = res;
for(int i = k;i < s.size();i++){
temp += isVowel(s[i]) - isVowel(s[i - k]);
res = max(res,temp);
}
return res;
}
};
时间复杂度O(n)
空间复杂度O(1)
1004 最大连续1的个数 |||
在确保区间内0的总数小于k的情况下统计1的数量?
class Solution {
public:
int longestOnes(vector<int>& nums, int k) {
int res = 0,sum = 0;
for(int r = 0,l = 0;r < nums.size();r++){
if(!nums[r])sum++;
while(sum > k)
if(!nums[l++])
sum--;
res = max(r - l +1,res);
}
return res;
}
};
时间复杂度O(n)
空间复杂度O(1)
1493 删掉一个元素以后全为1的最长子数组
与1004 最大连续1的个数 |||思路相同?
class Solution {
public:
int longestSubarray(vector<int>& nums) {
int res = 0,sum = 0;
for(int r = 0,l = 0;r < nums.size();r++){
if(!nums[r])sum++;
while(sum > 1){
if(!nums[l++]){
sum--;
}
}
res = max(res,r - l);//注意题意,需要删除一个元素,这里不加1
}
return res;
}
};
时间复杂度O(n)
空间复杂度O(1)
文章来源:https://blog.csdn.net/m0_72832574/article/details/135266696
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!