LeetCode热题100(一)
LeetCode热题100一1. 两数之和题目详情https://leetcode.cn/problems/two-sum/给定一个整数数组nums和一个整数目标值target请你在该数组中找出和为目标值target的那两个整数并返回它们的数组下标。你可以假设每种输入只会对应一个答案并且你不能使用两次相同的元素。你可以按任意顺序返回答案。示例 1输入nums [2,7,11,15], target 9 输出[0,1] 解释因为 nums[0] nums[1] 9 返回 [0, 1] 。示例 2输入nums [3,2,4], target 6 输出[1,2]示例 3输入nums [3,3], target 6 输出[0,1]解答过程第一时间想到的就是暴力枚举去解决publicint[]twoSum(int[]nums,inttarget){for(inti0;inums.length;i){for(intji1;jnums.length;j){if(nums[i]nums[j]target){returnnewint[]{i,j};}}}returnnull;}看了官方的解题思路十分巧妙的利用map特性第一次遍历的时候就记录元素及其下标避免重复遍历publicint[]twoSum(int[]nums,inttarget){HashMapInteger,IntegerhashMapnewHashMapInteger,Integer();for(inti0;inums.length;i){if(hashMap.containsKey(target-nums[i])){returnnewint[]{hashMap.get(target-nums[i]),i};}hashMap.put(nums[i],i);}returnnewint[]{};}49. 字母异位词分组题目详情https://leetcode.cn/problems/group-anagrams/给你一个字符串数组请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。示例 1:输入:strs [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“bat”],[“nat”,“tan”],[“ate”,“eat”,“tea”]]解释在 strs 中没有字符串可以通过重新排列来形成bat。字符串nat和tan是字母异位词因为它们可以重新排列以形成彼此。字符串ateeat和tea是字母异位词因为它们可以重新排列以形成彼此。示例 2:输入:strs [“”]输出:[[“”]]示例 3:输入:strs [“a”]输出:[[“a”]]解答过程延续上一题的思路将字符串拆解为字符数组排序后重新组装为字符串作为key并记录原始字符publicListListStringgroupAnagrams(String[]strs){HashMapString,ArrayListStringhashMapnewHashMap();for(Stringstr:strs){StringsArrays.stream(str.split()).sorted().collect(Collectors.joining());ArrayListStringarrayListhashMap.getOrDefault(s,newArrayList());arrayList.add(str);hashMap.put(s,arrayList);}returnnewArrayList(hashMap.values());}看了一下官方解题思路基本一致只是我这里用了切割字符串然后使用stream处理确实过于繁琐了publicListListStringgroupAnagrams(String[]strs){HashMapString,ArrayListStringhashMapnewHashMap();for(Stringstr:strs){char[]charArraystr.toCharArray();Arrays.sort(charArray);StringsnewString(charArray);ArrayListStringarrayListhashMap.getOrDefault(s,newArrayList());arrayList.add(str);hashMap.put(s,arrayList);}returnnewArrayList(hashMap.values());}另外一种解法利用了“互为字母异位词的两个字符串包含的字母相同”这里不再阐述128. 最长连续序列题目详情https://leetcode.cn/problems/longest-consecutive-sequence/给定一个未排序的整数数组nums找出数字连续的最长序列不要求序列元素在原数组中连续的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。示例 1输入nums [100,4,200,1,3,2] 输出4 解释最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2输入nums [0,3,7,2,5,8,4,6,0,1] 输出9示例 3输入nums [1,0,1,2] 输出3解答过程延续上一题的思路第一次的思路是将数组排序后将连续最大的数字作为key连续数字开始作为value记录序列长度最后通过遍历map去获取长度publicintlongestConsecutive(int[]nums){Arrays.sort(nums);HashMapInteger,IntegerhashMapnewHashMap();for(intnum:nums){hashMap.put(num,hashMap.getOrDefault(num-1,num));}intmax0;for(Map.EntryInteger,Integerentry:hashMap.entrySet()){intkeyentry.getKey();intvalueentry.getValue();if(key-value1max){maxkey-value1;}}returnmax;}后来发现其实可以优化一下value直接记录长度但是仍然不是较好的解题思路publicintlongestConsecutive(int[]nums){Arrays.sort(nums);intmax0;HashMapInteger,IntegerhashMapnewHashMap();for(intnum:nums){intlenhashMap.getOrDefault(num-1,0)1;hashMap.put(num,len);if(lenmax){maxlen;}}returnmax;}官方是使用的hashset处理看了下评论区其实可以排序后去获取最长序列publicintlongestConsecutive(int[]nums){Integer[]arrayArrays.stream(nums).boxed().distinct().sorted().toArray(Integer[]::new);intmax0;intlen0;for(inti0;iarray.length;i){if(i0){len1;}else{if(array[i]array[i-1]1){len;}else{len1;}}if(lenmax){maxlen;}}returnmax;}283. 移动零题目详情https://leetcode.cn/problems/move-zeroes/给定一个未排序的整数数组nums找出数字连续的最长序列不要求序列元素在原数组中连续的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。示例 1输入nums [100,4,200,1,3,2] 输出4 解释最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2输入nums [0,3,7,2,5,8,4,6,0,1] 输出9示例 3输入nums [1,0,1,2] 输出3解答过程这道题是个简单题但是第一次做的时候还是话费了很长时间并且不是一次性做对的第一次忽略了没有0的情况firstZeroIndex初始设置为0导致结果错误第二次忽略了0在元素后的情况错误交换了顺序publicvoidmoveZeroes(int[]nums){intfirstZeroIndex-1;for(inti0;inums.length;i){for(intj0;jnums.length;j){if(nums[j]0){firstZeroIndexj;break;}}if(nums[i]!0firstZeroIndex!-1ifirstZeroIndex){nums[firstZeroIndex]nums[i];nums[i]0;}}// System.out.println(Arrays.toString(nums));}11.盛最多水的容器题目详情https://leetcode.cn/problems/container-with-most-water/给定一个数组nums编写一个函数将所有0移动到数组的末尾同时保持非零元素的相对顺序。请注意必须在不复制数组的情况下原地对数组进行操作。示例 1:输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2:输入: nums [0] 输出: [0]解答过程直接尝试的暴力解法但是在数组很长的时候会超时publicintmaxArea(int[]height){intmax-1;for(inti0;iheight.length;i){for(intjheight.length-1;ji1;j--){intareaMath.min(height[i],height[j])*(j-i);if(areamax){maxarea;}}}returnmax;}看了解题思路才写出正确答案应该使用双指针由于宽度减少高度不增加的情况下一定会导致面积减小所以每次移动高度较低的指针publicintmaxArea(int[]height){intmax-1;intleft0;intrightheight.length-1;System.out.println(leftright);while(leftright){intareaMath.min(height[left],height[right])*(right-left);maxMath.max(max,area);if(height[left]height[right]){right--;}else{left;}System.out.println(max);}returnmax;}

相关新闻

配电网故障重构之粒子群算法实现33节点系统

配电网故障重构之粒子群算法实现33节点系统

配电网故障重构matlab 采用粒子群算法实现33节点系统中任意线路故障情况下的重构程序,程序采用基本环理论,排除网络孤岛和环网等情况,注释清楚,有参考资料最近在研究配电网故障重构,用粒子群算法实现了33节点系统中任意…

2026/7/5 10:07:49 阅读更多 →
Comsol模拟:离散裂隙网络中的两相流模型研究

Comsol模拟:离散裂隙网络中的两相流模型研究

comsol 离散裂隙 两相流模型地下岩体裂隙中的油水运动模拟总让人头秃,尤其是遇到非均匀分布的裂隙网络时。今天咱们来盘一盘COMSOL里离散裂隙两相流模型的实战操作,手把手带你用代码生成裂隙网络。先看模型核心——裂隙网络生成。与其在GUI里手动画线&am…

2026/7/8 5:49:31 阅读更多 →
AI新奇玩法第1课--本地部署

AI新奇玩法第1课--本地部署

这是新的一个系列,里面有很多你可能未曾听闻的玩法,或者是被某些原因劝退,这个系列中会带你探索,帮助你一起完成一些功能。可能以前或许听过有人讲提示词,甚至其实本人认为没有太大作用。接下来的几十课可能会颠覆认知…

2026/5/17 12:17:16 阅读更多 →

最新新闻

2026 指挥中心控制台选型排名:4 家主流源头厂商客观横向对比(政企控制室操作台采购指南)

2026 指挥中心控制台选型排名:4 家主流源头厂商客观横向对比(政企控制室操作台采购指南)

2026 政企指挥中心控制台选型客观测评,对比科思诺、铁力山、飞马拓新、照彰实业生产产能、交付周期、场景适配能力,提供控制室操作台采购标准、避坑要点与场景推荐,适配公安、能源、金融、水利调度项目。综合自有全流程产线、南北直营服务、全…

2026/7/8 5:50:46 阅读更多 →
海外AI短剧日产3万部、日耗3000万美金,前海像样李蓦:蓝海正在变红,中小厂商别硬闯

海外AI短剧日产3万部、日耗3000万美金,前海像样李蓦:蓝海正在变红,中小厂商别硬闯

短剧出海浪潮翻涌至今,AI短剧已然站上了行业增长的风暴眼。一个让人瞠目的数字摆在眼前——当前海外AI剧月产能已达到3到4万部。如果对标国内AI短剧的发展节奏,海外市场大致处在国内今年三、四月份的位置,正是爆发式增长的前夜。近日&#xf…

2026/7/8 5:50:46 阅读更多 →
JCMsuite应用:倾斜平面波传播透过光阑的传输

JCMsuite应用:倾斜平面波传播透过光阑的传输

这个例子计算入射平面波(在倾斜的入射角度)通过一个独立光阑的传播:光阑几何结构下图显示了计算得到的近场的矢量图。近场的矢量图几何图形在xy横截方向上具有透明的边界条件。因此,对于周期问题,散射场的傅里叶变换不再是离散的。所以&#…

2026/7/8 5:46:45 阅读更多 →
泉港专利申请指南:选择最适合您的专业服务

泉港专利申请指南:选择最适合您的专业服务

行业痛点分析 在当前激烈的市场竞争中,专利申请已成为企业保护创新成果、提升核心竞争力的重要手段。然而,泉港地区的许多企业在专利申请过程中面临着诸多挑战。根据国家知识产权局的数据,近年来全国专利申请驳回率逐年上升,2022…

2026/7/8 5:44:44 阅读更多 →
工业设备数据管理中台是什么?有什么功能?

工业设备数据管理中台是什么?有什么功能?

工厂里通常有PLC、SCADA、MES、ERP等来自不同厂商、不同年代的设备与系统,它们的数据格式和协议各不相同,就像说着各自的方言,无法沟通。设备数据中台会通过统一的接口和标准,把这些“方言”数据采集上来,清洗、转换并…

2026/7/8 5:42:44 阅读更多 →
GHelper完整指南:华硕笔记本轻量控制工具,告别臃肿的终极方案

GHelper完整指南:华硕笔记本轻量控制工具,告别臃肿的终极方案

GHelper完整指南:华硕笔记本轻量控制工具,告别臃肿的终极方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Viv…

2026/7/8 5:40:44 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻