day-25 无重复字符的最长子串

在这里插入图片描述

思路:动态规划的思想,遍历字符串,每遇到一个新的字符,将其存入HashMap中,并给其一个唯一值value(value递增),当前字符若与HashMap中的字符都不一样,则存入HashMap中,若已经存在,则将对应value小于当前字符value的字符全部删除,最后返回dp数组的最大值即可

注意点:for循环遍历HashMap时,若调用remove函数,HashMap.会立即重排

code:

class Solution {public int lengthOfLongestSubstring(String s) {if(s.length()==0)return 0;
Map<Character,Integer> map=new HashMap<Character,Integer>();
int dp[]=new int[s.length()];
dp[0]=1;
int total=1;
map.put(s.charAt(0),1);
for(int i=1;i<s.length();i++){if(map.getOrDefault(s.charAt(i),-1)==-1){dp[i]=dp[i-1]+1;total++;map.put(s.charAt(i),total);}else{total=total+1;List<Character> list=new ArrayList<>();dp[i]=total-map.get(s.charAt(i));for(char ch:map.keySet()){if(map.get(ch)<map.get(s.charAt(i))){list.add(ch);}}for(int j=0;j<list.size();j++){map.remove(list.get(j));}map.put(s.charAt(i),total);} 
}
Arrays.sort(dp);
return dp[s.length()-1];}
}

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

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

相关文章

jscpd检测代码的重复率

官方文档&#xff1a;jscpd jscpd 是一个开源的代码重复检测工具&#xff0c;它用于查找代码中的重复部分并生成相应的报告 1、比较两个目录之间的差异 yarn jscpd --skipLocal sre/test1/** sre/test2 --reporters html生成报告文档在 ./report/html 下面&#xff0c;可以打开…

搭建Flutter开发环境、从零基础到精通(文末送书【北大出版社】)

目录 搭建开发环境 1. 下载Flutter SDK 2. 设置镜像地址及环境变量 3. 安装与设置Android Studio 4. 安装Visual Studio Code与Flutter开发插件 5. IDE的使用和配置 6. 安装Xcode 7. 检查Flutter开发环境 好书推荐 内容简介 作者简介 搭建开发环境 Flutter可以跨平…

有关Theano和PyTensor库

根据Github里面的介绍&#xff0c;PyTensor是源于Theano&#xff0c; Theano目前应该已经不再开发了&#xff0c;更新都是很多年前。 因此PyTensor在背景介绍中说 PyTensor is a fork of Aesara, which is a fork of Theano. Theano和PyTensor都是计算相关的库&#xff0c;可以…

数据库关系运算理论:传统的集合运算概念解析

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

数据结构面试常见问题之- Sort with Swap(0,*)

&#x1f600;前言 在数据结构面试中&#xff0c;排序算法是考察重点之一。传统的排序算法&#xff0c;例如冒泡排序、快速排序等&#xff0c;都依赖于元素之间的比较和交换操作。然而&#xff0c;在某些情况下&#xff0c;我们可能只允许使用特定的交换操作&#xff0c;例如只…

伊理威:开抖店新手能做好吗

在数字化浪潮的推动下&#xff0c;抖音平台不仅成为人们娱乐放松的去处&#xff0c;也孕育了新的商业模式——抖店。对于初入电商领域的新手来说&#xff0c;“开抖店能否成功”成为了一个值得关注的问题。 首要论点在于&#xff0c;抖店为新手提供了一个低门槛的创业环境。相较…

睿尔曼超轻量仿人机械臂之-灵巧手动作编写及程序调用

一、灵巧手动作编写 1.连接设备 2. 运动控制 3. 参数设置 4 动作库使用 本软件可以设置灵巧手内部第 1-第 13 套动作序列数据&#xff0c;每套动作序列最多能有 8 步 分解动作&#xff0c;每一步分解动作的手指角度、运动速度、力度以及等待时间都可以单独设置。 步骤数&…

C语言每日一题07

一、题目 二、解析 逻辑与 &&、逻辑或 || 均有“短路”特性: 逻辑与&&“短路”&#xff1a;当逻辑与&&的左操作数为逻辑 “假“ 时&#xff0c;就足以判断该逻辑运算的结果为假了&#xff0c;故右操作数就不再被执行。 逻辑或||“短路”&#xff1a…

矩形总面积(第十四届蓝桥杯JavaB组省赛真题)

测试用例范围比较大&#xff0c;所以全部用long类型&#xff0c;如果用int类型只能通过60%&#xff0c;建议在内存和运行时间允许的情况下&#xff0c;比赛题都用long。 重点在于计算相交的面积&#xff0c;这里找的两个相交点是左上角&#xff08;m1,n1&#xff09;和右下角&a…

环境变量配置

举一个小例子来演示一下环境变量配置。 在CMD中打开QQ界面&#xff0c;首先需要知道QQ.exe文件的完整路径。一旦有了这个路径&#xff0c;可以按照以下步骤操作&#xff1a; 打开CMD窗口。可以通过按下Windows键R&#xff0c;输入“cmd”并回车来打开它。在CMD窗口中&#xf…

排序算法:归并排序(非递归)

文章目录 一、非递归思路二、代码演示 先赞后看&#xff0c;养成习惯&#xff01;&#xff01;&#xff01;^ _ ^<3 ❤️ ❤️ ❤️ 码字不易&#xff0c;大家的支持就是我坚持下去的动力。点赞后不要忘了关注我哦&#xff01; 所属专栏:排序算法 一、非递归思路 步骤如下&…

RIPGeo代码理解(四)model.py( RIPGeo的核心源代码)

​ 代码链接:RIPGeo代码实现 ├── lib # 包含模型(model)实现文件 │ |── layers.py # 注意力机制的代码。 │ |── model.py # TrustGeo的核心源代码。 │ |── sublayers.py # layer.py的支持文件。 │ |── utils.…