【蓝桥杯每日一题】3.28

Alt

🏝️专栏: 【蓝桥杯备篇】
🌅主页: f狐o狸x

"今天熬的夜,会变成明天奖状的闪光点!"


目录

一、唯一的雪花

        题目链接

        题目描述

        解题思路

        解题代码

二、逛画展

        题目链接

        题目描述

        解题思路

        解题代码

三、字符串

        题目链接

        题目描述

        解题思路

        解题代码

四、丢手绢

        题目链接

        题目描述

        解题思路

        解题代码


        喵~ 今天要学习的算法是双指针,也被称为滑动窗口是⼀种优化暴⼒枚举策略的⼿段:

• 当我们发现在两层 for 循环的暴⼒枚举过程中,两个指针是可以不回退的,此时我们就可以利⽤两个指针不回退的性质来优化时间复杂度。

一、唯一的雪花

        题目链接

        UVA11572 唯一的雪花 Unique Snowflakes

        题目描述

        解题思路

        例如题目中给的输入样例,我们可以按照以下方法来搞定此题:

        第一步:先初始化左右指针

         第二步:通过右指针向前走开始进窗口

         第三步:通过题意判断出窗口

        第四部:更新结果,重复上述步骤,直到遍历完全部数组

        解题代码

#include <iostream>
#include <unordered_map>using namespace std;typedef long long LL;const int N = 1e6 + 10;int n;
LL a[N];int main()
{int T; cin >> T;while (T--){cin >> n;for (int i = 1; i <= n; i++) cin >> a[i];// 初始化int left = 1, right = 1, ret = 0;unordered_map<int, int> mp;while (right <= n){// 进窗口mp[a[right]]++;// 判断while (mp[a[right]] > 1){mp[a[left]]--;left++;}// 更新结果ret = max(ret, right - left + 1);right++;}cout << ret << endl;}return 0;
}

二、逛画展

        题目链接

        P1638 逛画展 - 洛谷

        题目描述

        解题思路

        这题其实就是给你一串数字,让你找到包括所有数字种类的最小子串

        解题代码

#include <iostream>using namespace std;const int N = 1e6 + 10;int a[N], mp[N];int n, m;int kind;int main()
{cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];// 初始化int left = 1, right = 1,begin = 1 , ret = n;while (right <= n){// 进窗口if (mp[a[right++]]++ == 0) kind++;// 判断while (kind == m){// 更新结果int len = right - left ;if (len < ret){ret = len;begin = left;}// 出窗口if (mp[a[left++]]-- == 1) kind--;}}cout << begin << " " << begin + ret - 1 << endl;return 0;
}

三、字符串

        题目链接

        字符串 

        题目描述

        解题思路

        这题和上一题是一样的,只是把数字改成字符串了

        解题代码

#include <iostream>using namespace std;const int N = 30;int mp[N];
int kind;int main()
{string s; cin >> s;int n = s.size();// 初始化int left = 0, right = 0, ret = n;while(right < n){// 进窗口if(mp[s[right++] - 'a']++ == 0) kind++;// 判断while(kind == 26){// 更新结果int len = right - left;ret = min(ret, len);// 出窗口if(mp[s[left++] - 'a']-- == 1) kind--;}}cout << ret << endl;return 0;
}

四、丢手绢

        题目链接

        丢手绢

        题目描述

        解题思路

        这个题依然可以用双指针来解决,只不过是从一条直线变成了一个环而已

        解题代码

#include <iostream>using namespace std;typedef long long LL;const int N = 1e5 + 10;LL a[N];int n;int main()
{cin >> n;LL sum;for(int i = 1; i <= n; i++) {cin >> a[i];sum += a[i];}LL mid = sum / 2;// 初始化LL left = 1, right = 1, ret = 0, len = 0;while(right <= n){// 进窗口if(len <= mid) {len += a[right++];}// 判断while(len > mid){// 更新结果ret = max(sum - len, ret);// 出窗口len -= a[left++];}if(ret > mid) ret = sum - ret;ret = max(ret, len);}cout << ret << endl;return 0;
}

        总之,对于双指针这类型的题目就四步:1. 初始化 2. 进窗口 3. 判断出窗口 4. 更新结果

        明天我们将学习二分算法,感兴趣的朋友记得关注我哟~

        886~

"今天的bug是明天的经验值"

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPS JS宏编程教程(从基础到进阶)--第二部分:WPS对象模型与核心操作

第二部分&#xff1a;WPS对象模型与核心操作 WPS对象的属性、方法、集合 工作簿对象常用表达方式工作表对象常用表达方式单元格对象常用表达方式 单元格操作实战 单元格复制与重定位单元格偏移与尺寸调整 颜色设置专题 索引颜色与RGB颜色按条件动态设置单元格颜色 第二部分&…

【NLP 48、大语言模型的神秘力量 —— ICL:in context learning】

目录 一、ICL的优势 1.传统做法 2.ICL做法 二、ICL的发展 三、ICL成因的两种看法 1.meta learning 2.Bayesian Inference 四、ICL要点 ① 语言模型的规模 ② 提示词prompt中提供的examples数量和顺序 ③ 提示词prompt的形式&#xff08;format&#xff09; 五、fine-tune VS I…

基于Spring AI开发本地Jenkins MCP Server服务

前言 首先介绍下MCP是什么&#xff1f; MCP是由开发了 Claude 模型的 Anthropic 公司2024年12月提出并开源的一项开放标准&#xff0c;全称&#xff1a;Model Context Protocol&#xff0c;它是一个开放协议&#xff0c;它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能…

94二叉树中序遍历解题记录

怎么说呢&#xff0c;以为这道题不用记录了&#xff0c;菜得吓到了自己。起因是这个遍历的递归一般是写两个函数完成&#xff0c;如下&#xff1a; func inorder(root *TreeNode, res *[]int) {if root nil {return}inorder(root.Left, res)*res append(*res, root.Val) // …

重磅推出稳联技术Profinet转CANopen网关智能工厂解决方案!

重磅推出稳联技术Profinet转CANopen网关智能工厂解决方案&#xff01; 稳联技术Profinet转CANopen网关应运而生——它如同一座智能桥梁☺&#xff0c;打通两大主流工业协议&#xff0c;让异构网络无缝互联&#xff0c;助您释放设备潜力&#xff0c;实现真正的“万物互联”&…

Python正则表达式(一)

目录 一、正则表达式的基本概念 1、基本概念 2、正则表达式的特殊字符 二、范围符号和量词 1、范围符号 2、匹配汉字 3、量词 三、正则表达式函数 1、使用正则表达式&#xff1a; 2、re.match()函数 3、re.search()函数 4、findall()函数 5、re.finditer()函数 6…

ArayTS:一个功能强大的 TypeScript 工具库

目录 ArayTS&#xff1a;一个功能强大的 TypeScript 工具库&#x1f680; 主要特性1. 数据结构与算法2. 实用工具函数3. 类型工具4. 数据验证5. 字符串处理6. 数组处理7. 对象处理8. 样式处理9. 随机数生成10. 文件处理 &#x1f4a1;&#x1f4a1;&#x1f4a1;除此之外&#…

【质量管理】防错(POKA-YOKE)的概念、特点和作用解析

什么是防错法&#xff1f; 防错法&#xff08;日语发音为PO-ka yo-KAY&#xff09;是指运用某种机制或设备&#xff0c;帮助设备操作员&#xff08;或任何人&#xff09;避免犯错。在日语中&#xff0c;“poka-yoke” 意为 “防错” 或 “预防疏忽性错误”&#xff0c;最初被称…

【Sql Server】在SQL Server中生成雪花ID(Snowflake ID)

大家好&#xff0c;我是全栈小5&#xff0c;欢迎来到《小5讲堂》。 这是《Sql Server》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。 温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01; 目录 前言认识雪花ID…

HarmonyOS NEXT——【鸿蒙原生应用加载Web页面】

鸿蒙客户端加载Web页面&#xff1a; 在鸿蒙原生应用中&#xff0c;我们需要使用前端页面做混合开发&#xff0c;方法之一是使用Web组件直接加载前端页面&#xff0c;其中WebView提供了一系列相关的方法适配鸿蒙原生与web之间的使用。 效果 web页面展示&#xff1a; Column()…

Spring Data审计利器:@LastModifiedDate详解!!!

&#x1f552; Spring Data审计利器&#xff1a;LastModifiedDate详解&#x1f525; &#x1f31f; 简介 在数据驱动的应用中&#xff0c;记录数据的最后修改时间是常见需求。Spring Data的LastModifiedDate注解让这一过程自动化成为可能&#xff01;本篇带你掌握它的核心用法…

循环神经网络(RNN)

循环神经网络&#xff08;RNN&#xff09; 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;简称 RNN&#xff09;是一类用于处理序列数据的神经网络模型。与传统的前馈神经网络&#xff08;如多层感知机&#xff09;不同&#xff0c;RNN 具有反馈结构&#xff…

iOS rootless无根越狱检测方案

不同于安卓的开源生态&#xff0c;iOS一直秉承着安全性更高的闭源生态&#xff0c;系统中的硬件、软件和服务会经过严格审核和测试&#xff0c;来保障安全性与稳定性。 据FairGurd观察&#xff0c;虽然iOS系统具备一定的安全性&#xff0c;但并非没有漏洞&#xff0c;如市面上…

【React】基于 React+Tailwind 的 EmojiPicker 选择器组件

1.背景 React 写一个 EmojiPicker 组件&#xff0c;基于 emoji-mart 组件二次封装。支持添加自定义背景 、Emoji 图标选择&#xff01;并在页面上展示&#xff01; 2.技术栈 emoji-mart/data 、emoji-mart : emoji 图标库、元数据 tailwindcss: 原子化 CSS 样式库 antd : 组…

skynet.socket.limit 使用详解

目录 核心作用方法定义使用场景场景 1&#xff1a;限制接收缓冲区&#xff08;防御大包攻击&#xff09;场景 2&#xff1a;动态调整限制&#xff08;应对不同负载&#xff09; 底层机制注意事项完整示例&#xff1a;带流量控制的 Echo 服务总结 在 Skynet 框架中&#xff0c;s…

electron打包vue2项目流程

1&#xff0c;安装一个node vue2 的项目 2&#xff0c;安装electron&#xff1a; npm install electron -g//如果安装还是 特比慢 或 不想安装cnpn 淘宝镜像查看是否安装成功&#xff1a;electron -v 3&#xff0c;进入到项目目录&#xff1a;cd electron-demo 进入项目目录…

【面试八股】:常见的锁策略

常见的锁策略 synchronized &#xff08;标准库的锁不够你用了&#xff09;锁策略和 Java 不强相关&#xff0c;其他语言涉及到锁&#xff0c;也有这样的锁策略。 1. 悲观锁&#xff0c;乐观锁&#xff08;描述的加锁时遇到的场景&#xff09; 悲观锁&#xff1a;预测接下来…

【数据分享】基于联合国城市化程度框架的全球城市边界数据集(免费获取/Shp格式)

在全球城市化进程不断加快的今天&#xff0c;如何精准定义和测量“城市”成为关键问题。不同国家和机构采用不同的标准&#xff0c;导致全球城市化水平的统计结果存在较大差异。同时&#xff0c;由于数据来源分散、标准不统一&#xff0c;获取一套完整、可比的全球城市边界数据…

acwing 每日一题4888. 领导者

目录 题目简述&#xff1a; 思路梳理&#xff1a; 总代码&#xff1a; https://www.acwing.com/problem/content/description/4891/ 题目简述&#xff1a; 有两个品种的奶牛&#xff0c;分别为G和H&#xff0c;我们要在每个品种中各找一头牛当领导者&#xff0c;最后输出全…

在Windows下VSCodeSSH远程登录到Ubuntu

Window用VSCode通过SSH远程登录Ubuntu SSH 服务开启Windows远程登录 SSH 服务开启 首先要确保 Ubuntu 的 SSH 服务开启了&#xff0c;开启 Ubuntu 的 SSH 服务以后我们就可以在 Windwos 下使用终端软件登陆到 Ubuntu 开启 SSH sudo apt-get install openssh-serverWindows远…