【Leetcode:2024. 考试的最大困扰度 + 滑动窗口】

news2024/9/21 18:35:22

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 滑动窗口
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 2024. 考试的最大困扰度

⛲ 题目描述

一位老师正在出一场由 n 道判断题构成的考试,每道题的答案为 true (用 ‘T’ 表示)或者 false (用 ‘F’ 表示)。老师想增加学生对自己做出答案的不确定性,方法是 最大化 有 连续相同 结果的题数。(也就是连续出现 true 或者连续出现 false)。

给你一个字符串 answerKey ,其中 answerKey[i] 是第 i 个问题的正确结果。除此以外,还给你一个整数 k ,表示你能进行以下操作的最多次数:

每次操作中,将问题的正确答案改为 ‘T’ 或者 ‘F’ (也就是将 answerKey[i] 改为 ‘T’ 或者 ‘F’ )。
请你返回在不超过 k 次操作的情况下,最大 连续 ‘T’ 或者 ‘F’ 的数目。

示例 1:

输入:answerKey = “TTFF”, k = 2
输出:4
解释:我们可以将两个 ‘F’ 都变为 ‘T’ ,得到 answerKey = “TTTT” 。
总共有四个连续的 ‘T’ 。
示例 2:

输入:answerKey = “TFFT”, k = 1
输出:3
解释:我们可以将最前面的 ‘T’ 换成 ‘F’ ,得到 answerKey = “FFFT” 。
或者,我们可以将第二个 ‘T’ 换成 ‘F’ ,得到 answerKey = “TFFF” 。
两种情况下,都有三个连续的 ‘F’ 。
示例 3:

输入:answerKey = “TTFTTFTT”, k = 1
输出:5
解释:我们可以将第一个 ‘F’ 换成 ‘T’ ,得到 answerKey = “TTTTTFTT” 。
或者我们可以将第二个 ‘F’ 换成 ‘T’ ,得到 answerKey = “TTFTTTTT” 。
两种情况下,都有五个连续的 ‘T’ 。

提示:

n == answerKey.length
1 <= n <= 5 * 104
answerKey[i] 要么是 ‘T’ ,要么是 ‘F’
1 <= k <= n

🌟 求解思路&实现代码&运行结果


⚡ 滑动窗口

🥦 求解思路
  1. 该题通过滑动窗口来求解,具体求解算法如下:
  2. 遍历字符串,枚举子串右端点 right,同时维护最小左端点 left ,通过词频表中维护子串中字符的个数。
  3. 如果 T 和 F 的出现次数都超过 k,那么必须不断移动左端点 left,同时减少 词频表中字符串的出现次数,直到 T 和 F 的出现次数至少有一个 ≤k。
  4. 循环结束后,说明子串右端点在 right 时,对应的最小左端点为 left,用子串长度 right−left+1 更新答案的最大值。
  5. 有了基本的思路,接下来我们就来通过代码来实现一下的解法。
🥦 实现代码
class Solution {
    public int maxConsecutiveAnswers(String answerKey, int k) {
        char[] s = answerKey.toCharArray();
        int ans = 0;
        int left = 0;
        int[] cnt = new int[2];
        for (int right = 0; right < s.length; right++) {
            int rightIndex = s[right] == 'T' ? 0 : 1;
            cnt[rightIndex]++;
            while (cnt[0] > k && cnt[1] > k) {
                int leftIndex = s[left++] == 'T' ? 0 : 1;
                cnt[leftIndex]--;
            }
            ans = Math.max(ans, right - left + 1);
        }
        return ans;
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2097597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

unity的语言问题记录(委托相关)

NGUI跟随鼠标实例位置 // 获取鼠标位置Vector3 mousePos Input.mousePosition;// 将屏幕坐标转换为NGUI的世界坐标Vector3 worldPos UICamera.mainCamera.ScreenToWorldPoint(mousePos);worldPos.z 0; // 确保图片在UI层// 设置图片位置instantiatedImage.transform.positio…

Mac环境下OpenTest使用总结

运行环境&#xff1a; node&#xff1a;20.5.1 npm&#xff1a;10.5.0 Java&#xff1a;1.8.0_351(如果存在多个版本Java&#xff0c;安装前将环境切换到jdk8) 安装 在终端输入命令 npm install opentest -g 开始 新建终端&#xff0c;输入命令&#xff1a; cd ~ mkdi…

视频转文字提取的7种工具,简单快速高效

视频内容的迅速增长让我们既享受了视觉盛宴&#xff0c;也面临着信息整理的挑战。很多时候我们看到一段文案内容很精彩的视频&#xff0c;想要记录里面的文字&#xff0c;你是不是听一句写一句呢&#xff1f;那样会非常耗费时间&#xff0c;如何将视频中的精华内容快速转化为可…

Python机器学习——人脸性别识别

一、选题背景 人脸识别技术是模式识别和计算机视觉领域最富挑战性的研究课题之一&#xff0c;也是近年来的研究热点&#xff0c;人脸性别识别作为人脸识别技术的重要组成部分也受到了广泛地关注。人脸性别识别就是向计算机输入人脸图像&#xff0c;经过某种方法或运算&#xff…

springboot图书商城

1.可注册可登录 2.首页-》可浏览热销图书&#xff0c;可查看用户发布的帖子&#xff0c;可查看热门资讯 3.图书商城-》图书详情&#xff0c;可购买&#xff0c;可加入购物车&#xff0c;可展示评价 4.图书贴吧-》可查看用户发布的帖子&#xff0c;可留言评论 5.平台资讯-》可查…

BugKu练习记录:小山丘的秘密

题目&#xff1a; hill能有什么秘密呢 bugku{PLGTGBQHM} 其中A1&#xff0c;flag全为小写hill解密&#xff0c;a1&#xff0c;所以z0&#xff0c;字母表为zabcdefghijklmnopqrstuvwxy&#xff0c;根据图片上的棋子数得到对应的字母&#xff0c;分别是abczadefz&#xff0c;用工…

无头结点单链表直接插入排序(王红梅分级抽象教学方法)

struct ListNode {int val;struct ListNode* next; };typedef struct ListNode ListNode; struct ListNode* insertionSortList(struct ListNode* head) {// 如果链表为空或者链表只有一个元素&#xff0c;那就根本不用排序if (head NULL || head->next NULL)return head…

C++入门基础知识45——【关于C++ 函数】定义函数、函数声明

成长路上不孤单&#x1f60a;【14后&#xff0c;C爱好者&#xff0c;持续分享所学&#xff0c;如有需要欢迎收藏转发&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#xff01;&#xff01;&#xff01;&#xff01;&#xff…

海外广告投放成功的关键点有哪些?

在全球化日益加深的今天&#xff0c;海外广告投放已成为众多企业拓展国际市场、提升品牌影响力的关键手段。然而&#xff0c;面对不同文化、语言、消费习惯以及市场环境的挑战&#xff0c;如何确保海外广告投放的成功&#xff0c;是每一个跨境营销者面对的重大课题。本文将从多…

曹启富主任医师:高血压的罪魁祸首找到啦!原来是他变硬了

上周公司一年一度的体检&#xff0c;如同一场无声的健康大考&#xff0c;本以为不过是例行公事&#xff0c;走走过场&#xff0c;没想到却意外揭开了许多同事健康背后的隐忧。平日里自诩年轻力壮、身体倍儿棒的他们&#xff0c;体检报告上却赫然出现了多个警示灯&#xff0c;让…

开放式耳机是什么意思?开放式耳机好不好用?

开放式耳机是一种在设计上不会完全封闭或堵塞耳道的耳机类型 。其发声原理通常是通过空气传导和骨传导的组合&#xff0c;将声音传递到内耳&#xff0c;并刺激听觉神经产生听觉感受 。 优点&#xff1a; 佩戴舒适&#xff1a;通常采用轻盈的设计&#xff0c;不会直接刺激耳膜&…

心脑血管科曹启富主任医师:低压高的2大原因!年轻人血压高一定要看

在现代社会&#xff0c;不仅仅是中老年人&#xff0c;越来越多的年轻人也开始面临血压低压&#xff08;舒张压&#xff09;偏高的问题。这一现象往往被忽视&#xff0c;但其潜在的健康风险却不容忽视。了解低压高的原因&#xff0c;对于年轻人维护心血管健康至关重要。本文将深…

海外社交媒体引流策略及云手机的应用

在外贸电商领域&#xff0c;海外社交媒体引流已成为一种极为有效的营销手段。通过精准锁定目标受众&#xff0c;企业能够以较低成本获取大量流量&#xff0c;从而提高转化率。在这个过程中&#xff0c;云手机的应用也越来越受到重视。 首先&#xff0c;我们需要选择适合的海外社…

工作录屏工具选择全攻略:哪种录屏工具更得你心?

在如今这个信息爆炸的时代&#xff0c;电脑录屏工具已经成为我们工作中不可或缺的利器。无论是制作教程、演示操作还是记录重要时刻&#xff0c;一款好的录屏工具都能让我们的工作事半功倍。接下来&#xff0c;为大家推荐几款工作中常用的电脑录屏工具&#xff0c;并分享使用感…

Neo4j在Ubuntu 20.04上安装

rootnode11:~# cat /etc/lsb-release DISTRIB_IDUbuntu DISTRIB_RELEASE20.04 DISTRIB_CODENAMEfocal DISTRIB_DESCRIPTION"Ubuntu 20.04.6 LTS" rootnode11:~# cat /etc/issue Ubuntu 20.04.6 LTS \n \l 1.安装jdk java 1.8.xx版本对应neo4j 3.xx版本 jdk 11版本对…

CpK vs PpK,过程能力指标的精彩对决

Cpk VS Ppk&#xff08;一&#xff09;描述 对于Cpk和Ppk这两个概念&#xff0c;大家可能会有无数个疑问&#xff01;这两个指标我该看哪个&#xff1f;计算有什么差别……那么我们首先来看一下Minitab中对它们俩是怎么描述的。 大多数能力评估都可以分组为以下两种类别中的一…

区块链未来发展展望:机遇与挑战并存

前言 随着全球数字化进程的不断推进&#xff0c;区块链技术作为一种去中心化、安全性高、透明度强的分布式账本技术&#xff0c;正逐步融入各个领域并产生深远影响。近年来&#xff0c;区块链已经从初期的加密货币应用扩展到金融、供应链管理、医疗健康、物联网、能源等多个行…

位图(布隆过滤器)

bitset/bitmap 给40亿个不重复的无符号整数&#xff0c;没排过序。给1个无符号整数,如何快速判断一个数是否在这40亿个数中。 ​ #pragma once#include <vector> #include <string> #include <time.h>template<size_t N> class bitset { public:bitse…

实战docker第一天——windows安装docker,测试,并解决被墙办法

Docker 是一个开源的容器化平台&#xff0c;它允许开发者将应用程序及其所有依赖项打包在一个名为“容器”的单独环境中&#xff0c;从而确保应用程序在任何环境下都能一致地运行。以下是 Docker 的一些核心概念及其意义&#xff1a; 容器化&#xff1a;Docker 通过将应用程序及…

外卖霸王餐系统的运作流程及注意事项

霸王餐系统概述 一、系统组成 商家端发布霸王餐活动信息&#xff0c;包括菜品、时间、人数等。管理活动报名者信息。查看活动效果和用户反馈。用户端浏览和报名感兴趣的霸王餐活动。提交评价和反馈。管理后台审核商家和用户信息。监控活动流程和数据。 二、运作流程 1.商家…