题意 :

  • 给一个x.串,每次操作可以将一个.换成一个x,问0-k次操作的过程中,连续的x的数量最多是多少

思路 :

  • 转换条件,就是我们最多可以将k个.换成x
  • 在所有满足.数小于等于k的区间中,最大的区间长度就是答案;优化一下,
  • 显然这会超时,我们的优化方案是 :1.前缀和(因为要求区间内的.数量);2.滑动窗口算法(外层循环左边界,每次往右移动一个,内层循环右边界,找到恰好能让这个区间内个数小于等于k的最大的右边界,注意这种循环方式得到的r是恰好让区间内数量大于k的)
  • 输入字符串又没有给其长度,我们先预处理出来,注意-1,因为我们给它加了个空格字符
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <unordered_set>
#include <math.h>
#define endl '\n'
#define fi first
#define se second
#define pb push_backusing namespace std;
using ll = long long;typedef pair<int, int> PII;int main()
{cin.tie(nullptr) -> sync_with_stdio(false);string s; cin >> s;s = " " + s;ll k; cin >> k;ll n = s.size() - 1;vector<int> cnt(n + 1);for (int i = 1; i <= n; i ++ ){if (s[i] == '.') cnt[i] = cnt[i - 1] + 1;else cnt[i] = cnt[i - 1];}ll r = 1, ans = 0;for (ll l = 1; l <= n; l ++ ){while (r <= n && cnt[r] - cnt[l - 1] <= k)r ++ ;ans = max(ans, r - 1 - l + 1);}cout << ans << endl;return 0;
}

Longest X 贪心,滑动窗口,前缀和(400)相关推荐

  1. Leetcode1703. 得到连续 K 个 1 的最少相邻交换次数[C++题解]:难(货仓选址加强版+滑动窗口+前缀和)

    文章目录 题目分析 题目链接 题目分析 首先需要明确一点:最优结果中1的相对位置和开始时不会改变.否则的话就是交换两个1,会徒劳增加交换次数. 比如[1,0,0,0,0,0,1,1],最后变成[0,0 ...

  2. [Leedcode][JAVA][第209题][长度最小的子数组][滑动窗口][前缀和][二分查找][双指针]

    [问题描述][中等] 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的连续子数组,返回 0.示例: 输入: ...

  3. 跳跃游戏 (动态规划剪枝/前缀和/滑动窗口/BFS剪枝)

    一.跳跃游戏简单介绍 1. 跳跃游戏简单介绍 跳跃游戏是一种典型的算法题目,经常是给定一数组arr,从数组的某一位置i出发,根据一定的跳跃规则,比如从i位置能跳arr[i]步,或者小于arr[i]步, ...

  4. leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法

    题目解析 代码如下 题目解析 这一题是一道会员的题目,题目介绍如下: Given a string, find the length of the longest substring T that c ...

  5. LeetCode Longest Repeating Character Replacement(滑动窗口)

    问题:给出一个由大写字母构成的字符串,可以对字符串最多作k次操作,将一个字符转换为另外一个字符. 找出操作后最长的重复子串 思路:使用滑动窗口,及用一个长度为26的数组记录字符个数.初始时,窗口大小为 ...

  6. AcWing 1236. 递增三元组 (flag + 前缀和 | 二分 | 滑动窗口)

    1236. 递增三元组 解题思路 最开始想到3重循环枚举三个数组,然后最内层用条件语句判断一下即可,但是数据范围为10510^5105,三重循环肯定会超时 那么这道题很可能需要的算法复杂度为O(n)O ...

  7. 209 长度最小的子数组(前缀和+二分查找、滑动窗口)

    1. 问题描述: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度.如果不存在符合条件的子数组,返回 0. 示例: 输入:s = ...

  8. leetcode 3. Longest Substring Without Repeating Characters 最长非重复子串的长度 滑动窗口法

    题目链接 根据我们之前介绍的滑动窗口法的解法: 滑动窗口法详解 leetcode 438. Find All Anagrams in a String 滑动窗口法 这题,我们不难解决,使用之前的模板. ...

  9. 滑动窗口类型(Sliding window)

    Sliding window,滑动窗口类型 介绍部分来自:https://www.zhihu.com/question/36738189/answer/908664455 滑动窗口类型的题目经常是用来 ...

最新文章

  1. ubuntu 能解析域名但ping不通_域名解析设置方法
  2. rca接口_音频线怎么区别?几种音频接口逐一介绍
  3. okhttputils java_Java OkHttpUtils.post方法代码示例
  4. [转]数据库事务ACID特性
  5. 第一天:认识python
  6. Could not find a version that satisfies the requirement PyQt5
  7. [转载] MLDN魔乐科技李兴华主讲Oracle——02 Oracle安装
  8. 德芙网络营销策略ppt_看德芙网络营销策划经典案例,戳这里!
  9. Flash游戏开发-RPG地图实现
  10. 六大机构好评的Teradata 究竟有哪些过人之处?
  11. manjaro linux树莓派,manjaro
  12. Holy Grail————计蒜客
  13. 爬在NLP的大道上——Question Answering Infused Pre-training of General-Purpose Contextualized Representations
  14. 使用梯度上升法求解 PCA 问题
  15. CS61A Proj 3
  16. 计算机存储介质清除工具,天桥科技存储介质信息消除工具
  17. html中submit和button的区别(总结)
  18. 如何打造优秀的个人博客
  19. 产品经理学习-加分技能
  20. Spring Cache使用Redis自定义缓存key

热门文章

  1. OO-ALV标准工具栏按钮
  2. 返聘前任员工:效率高出新人40%!
  3. SAP 物料主数据屏幕增强
  4. 离职后,我们该如何处理社保!
  5. 预留在PP模块里面的作用
  6. 交易性金融资产账务处理问题及改进
  7. 2021全年“遇冷”后,“电商节”该何去何从?
  8. c语言 求一个数的因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
  9. linux支持中文文件名,CentOS安装中文支持(linux中文文件名乱码)
  10. 乐橙本地录像回放不了_本地工具访问:安全、高效、合规的IT资源远程访问