外国人做中国英语视频网站吗,网站做关键词搜索要好多钱,小微企业所得税5%优惠政策,国家企业信用信息公示系统官网一1.题目 题目分析#xff1a;
给一个数字k#xff0c;可以把数组里的0改成1#xff0c;但是只能改k次#xff0c;然后该变得到的数组能找到最长的子串且都是1。
2.算法原理
这里不用真的把0变成1#xff0c;因为改了比较麻烦#xff0c;下次用就要改回成1#xff0c;这…1.题目 题目分析
给一个数字k可以把数组里的0改成1但是只能改k次然后该变得到的数组能找到最长的子串且都是1。
2.算法原理
这里不用真的把0变成1因为改了比较麻烦下次用就要改回成1这里用滑动窗口来先进窗口遇到1就无视遇到0就进窗口虽然1和0都在一个窗口中在画图里但是要把1看出空气理会0的个数然后更k比较满了就开始出窗口了要排除0直到窗口内的0个数小于k。for循环来移动right遇到1是无视就走for循环来遇到0就特殊处理每次循环都更新长度值。 3.代码实现
class Solution {
public:int longestOnes(vectorint nums, int k) {int nnums.size();int len0;for(int left0,right0,zero0;rightn;right){//等于1不用管for循环会自动rightif(nums[right]0) zero;while(zerok){if(nums[left]0) zero--;}lenmax(len,right-left1);}return len;}
};