LeetCode之滑动窗口

news/2024/9/17 20:45:55/ 标签: leetcode, 算法, java

209. 长度最小的子数组

java">class Solution {// 方法 minSubArrayLen 接收一个整数 s 和一个整数数组 nums// 返回和大于或等于 s 的最小子数组长度public int minSubArrayLen(int s, int[] nums) {int n = nums.length; // 获取数组的长度// 如果数组为空,直接返回 0if (n == 0) {return 0;}// 初始化答案为最大整数,表示最小子数组的长度int ans = Integer.MAX_VALUE;// 初始化两个指针,分别为滑动窗口的左右边界int start = 0, end = 0;// 初始化当前窗口的总和int sum = 0;// 使用滑动窗口的方式,右边界 end 向右移动while (end < n) {sum += nums[end]; // 将当前元素加入总和// 当当前窗口的和大于或等于目标值 s 时,尝试收缩窗口while (sum >= s) {// 更新答案为当前窗口长度的最小值ans = Math.min(ans, end - start + 1);sum -= nums[start]; // 从总和中减去左边界的元素start++; // 移动左边界,缩小窗口}end++; // 移动右边界,扩展窗口}// 检查是否找到了符合条件的子数组,返回结果return ans == Integer.MAX_VALUE ? 0 : ans; // 如果 ans 没有更新,返回 0,不然返回 ans}
}

3. 无重复字符的最长子串

java">class Solution {// 方法 lengthOfLongestSubstring 接收一个字符串 s,返回不包含重复字符的最长子串的长度public int lengthOfLongestSubstring(String s) {// 将字符串转换为字符数组char[] arr = s.toCharArray();// 创建一个集合以存储当前窗口中的字符Set<Character> set = new HashSet<>();// 初始化答案,表示最长子串的长度int ans = 0;// 使用双指针(滑动窗口)的方法for (int left = 0, right = 0; right < arr.length; right++) {// 当右指针指向的字符已经存在于集合中,收缩左边界while (set.contains(arr[right]))  {// 从集合中移除左指针指向的字符set.remove(arr[left]);// 左指针右移,继续寻找不重复的字符left++;}// 将当前右指针指向的字符加入集合set.add(arr[right]);// 更新答案,计算当前窗口的长度并取最大值ans = Math.max(ans, right - left + 1);}// 返回最长子串的长度return ans;}}


http://www.ppmy.cn/news/1524899.html

相关文章

【机器人建模和控制】读书笔记

机器人建模和控制——马克斯庞 A. x 1 0 x 1 ∙ x 0 x^0_1x_1\bullet x_0 x10​x1​∙x0​&#xff0c;其实就是&#xff1a; 1&#xff09; x 1 x_1 x1​轴向量在 O 0 O_0 O0​系下的坐标 2&#xff09;在 x 0 x_0 x0​轴上的投影 3&#xff09;坐标变换矩阵的 R 1 0 R_1…

redis的 stream数据类型实现 消息队列?

redis的 stream数据类型实现 消息队列&#xff1f; redis的消息队列可以通过&#xff1a; PUB/SUB&#xff0c;订阅/发布模式&#xff1a;缺点是发布订阅模式是无法持久化的&#xff0c;如果出现网络断开、Redis 宕机等&#xff0c;消息就会被丢弃&#xff1b; 使用列表 List…

大模型微调:RHLF与DPO浅析

大模型应用性能的提升不仅在于其预训练&#xff0c;而微调的作用也非常显著。对于多数从事大模型应用领域的团队而言&#xff0c;微调是一个核心的工作之一&#xff0c;为专门任务完善大模型并确保其产出符合我们的预期。 1. 关于微调 微调涉及调整预训练的LLM &#xff0c;以更…

50projects50days案例代码分析学习、效果,Html+CSS+JavaScript小案例

案例来源于&#xff1a;https://github.com/bradtraversy/50projects50days&#xff0c;部分资源需要科学上网加载使用&#xff0c;往后不再赘述。 合集链接&#xff0c;欢迎订阅&#xff1a; https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzkwODY2OTA5NA&actiongetal…

ai智能语电销机器人有哪些功能?

近几年火爆的AI语音机器人&#xff0c;已经可以成熟的服务于金融贷款、理财、房地产、电商、汽车等行业&#xff0c;成熟的适用于电话销售、客服服务、售后管理等等基础岗位&#xff0c;那么ai智能语电销机器人有哪些功能&#xff1f;我们来看一看。 顾名思义&#xff0c;智能…

数据结构 栈 队列

系统栈&#xff1a; 保护局部变量 函数的形参和返回值 函数的调用关系&#xff08;保护现场&#xff0c;恢复现场操作&#xff0c;遵循先进后出&#xff0c;后进先出&#xff09; 数据结构栈&#xff08;顺序栈&#xff0c;链式栈&#xff09;&#xff1a; 同样遵遵循先进…

Linux操作系统入门(一)

Linux操作系统是开源的类Unix操作系统内核&#xff0c;由林纳斯托瓦兹在1991年创建。 Linux操作系统以其强大的性能、稳定性和开放性&#xff0c;赢得了全球用户的广泛认可&#xff0c;从服务器到个人电脑&#xff0c;从超级计算机到嵌入式设备&#xff0c;都有它的身影。作为…

vue如何做到计算属性传参?

1.计算属性传参&#xff0c;还在return一个函数&#xff1f; let nameFull computed(() > {return e > {console.log(参数, e)} }) 那这样的话&#xff0c;干脆直接写一个函数 2.真正的计算属性传参&#xff0c;借助map实现 import { computed } from "vue&quo…

手把手教你给服务器安装及使用ESXI系统

ESXi&#xff08;以前称为 ESX Server&#xff09;是由 VMware 开发的一款企业级的裸机虚拟化管理程序&#xff08;hypervisor&#xff09;。ESXi 允许直接在物理硬件上运行&#xff0c;并在其上创建和管理多个虚拟机&#xff08;VMs&#xff09;&#xff0c;每个虚拟机都可以运…

Python酷库之旅-第三方库Pandas(116)

目录 一、用法精讲 511、pandas.DataFrame.std方法 511-1、语法 511-2、参数 511-3、功能 511-4、返回值 511-5、说明 511-6、用法 511-6-1、数据准备 511-6-2、代码示例 511-6-3、结果输出 512、pandas.DataFrame.var方法 512-1、语法 512-2、参数 512-3、功能…

Element UI入门笔记(个人向)

Element UI入门笔记 将页面分割为一级菜单、二级菜单、导航栏三个部分&#xff1b;使用npm下载安装&#xff0c;使用语句npm i element-ui -s; 布局组件 el-form 用于创建和管理表单&#xff1b;从属性上看&#xff1a; :model&#xff1a;用于双向数据绑定&#xff0c;将表单…

3C电子胶黏剂在手机制造方面有哪些关键的应用

3C电子胶黏剂在手机制造方面有哪些关键的应用 3C电子胶黏剂在手机制造中扮演着至关重要的角色&#xff0c;其应用广泛且细致&#xff0c;覆盖了手机内部组件的多个层面&#xff0c;确保了设备的可靠性和性能。以下是电子胶在手机制造中的关键应用&#xff1a; 手机主板用胶&…

Android Framework(五)WMS-窗口显示流程——窗口布局与绘制显示

文章目录 relayoutWindow流程概览应用端处理——ViewRootImpl::setView -> relayoutWindowViewRootImpl::setViewViewRootImpl::performTraversalsViewRootImpl::relayoutWindow Surface的创建WindowManagerService::relayoutWindow了解容器类型和Buff类型的SurfaceBuff类型…

调接口某个属性信息为null

1、问题描述 通过feign调用别的系统接口&#xff0c;发现有个属性&#xff0c;获取的值始终是null。 找接口提供方&#xff0c;提供方自测接口&#xff0c;是有返回值的。 2、问题排查 接口调用过程如图&#xff1a; &#xff08;1&#xff09;接口提供方开发接口test (2) …

【渗透测试】——DVWA靶场搭建

&#x1f4d6; 前言&#xff1a;DVWA&#xff08;Damn Vulnerable Web Application&#xff09;是一个用于安全漏洞测试的 PHP/MySQL 网络应用&#xff0c;旨在为安全专业人士提供一个合法的环境&#xff0c;以测试他们的技能和工具&#xff0c;同时帮助 Web 开发者更好地理解 …

【UI】element ui table(表格)expand实现点击一行展开功能

文章目录 前言涉及知识点&#xff1a;代码部分隐藏小箭头总结 前言 element ui是一个非常不错的vue的UI框架&#xff0c;element对table进行了封装&#xff0c;简化了vue对表格的渲染。 element ui表格中有一个功能是展开行&#xff0c;在2.0版本官网例子中&#xff0c;只可以…

斯坦福研究人员探讨大型语言模型在社交网络生成中的应用及其在政治同质性上的偏见

社交网络生成在许多领域有着广泛的应用&#xff0c;比如流行病建模、社交媒体模拟以及理解社交现象如两极化等。当由于隐私问题或其他限制无法直接观察真实网络时&#xff0c;创建逼真的社交网络就显得尤为重要。这些生成的网络对于在这些情况下准确建模互动和预测结果至关重要…

相机光学(三十七)——自动对焦原理

1.自动对焦的三种方式 目前在手机上采用的自动对焦系统包括反差对焦、相位对焦和激光对焦三种方案&#xff0c;下面我们来看一下它们的工作原理和相互之间的区别是什么。 1.1反差对焦【CDAF】- Contrast Detection Auto Focus 反差对焦是目前普及率最高、使用最广泛、成本相对…

透视表支持自定义聚合公式,新增字体管理功能,DataEase开源BI工具v2.10 LTS版本发布

2024年9月9日&#xff0c;人人可用的开源BI工具DataEase正式发布v2.10 LTS&#xff08;Long Term Support&#xff09;版本。DataEase开源项目组将对v2.10 LTS版本提供长期支持&#xff0c;定期迭代发布小版本&#xff0c;持续进行问题修复更新并针对部分功能进行优化。欢迎广大…

谋算中的因果与归纳不同于计算中的因果与归纳

谋算中的因果与归纳不同于计算中的因果与归纳。计算中的因果与归纳是基于已有的数据和信息&#xff0c;通过数学运算和逻辑推理得出结论。而谋算中的因果与归纳则是基于对未来的预测和判断&#xff0c;通过分析和推理得出结论。因此&#xff0c;谋算中的因果与归纳需要更多的主…