当前位置: 首页 > news >正文

leetcode hot100(两数之和、字母异位词分组、最长连续序列)

两数之和

题目链接
参考链接:

题目描述:
在这里插入图片描述

暴力法

双重循环查找目标值

class Solution {public int[] twoSum(int[] nums, int target) {int[] res = new int[2];for(int i = 0 ; i < nums.length ; i++){boolean isFind = false;for(int j = i + 1 ; j < nums.length ; j++){if(nums[i] + nums[j] == target){res[0] = i;res[1] = j;isFind = true;break;}}if(isFind)break;}return res;       }
}

哈希表

利用HashMap将nums的下标和它的值对应起来Map,将遍历过的值存储下来,每次查找Map之中是否存在target-nums[i]的值,存在的话,该记录的下标j和当前下标i即为结果。

class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> map = new HashMap<>();for(int i = 0 ; i < nums.length ; i++){if(map.containsKey(target - nums[i])){return new int[]{map.get(target - nums[i]) , i};}map.put(nums[i],i);}return new int[0];}
}

两数之和

题目链接
参考链接:

题目描述:
在这里插入图片描述
思路:根据题意,可以得出一个结论,需要将字母组成相同的词放入同一个List之中,因此,对每个String转换成char[](S.toCharArray()),随后对其进行排序,将排序之后的值转换成字符串key,判断key是否已经存在,不存在则新建List,若存在则将该列表取出向其中添加当前的字符串。

class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> map = new HashMap<>();for(String s : strs){char[] sortedString = s.toCharArray();Arrays.sort(sortedString);String key = new String(sortedString);List<String> list = map.getOrDefault(key,new ArrayList<>());list.add(s);map.put(key,list);}return new ArrayList<List<String>>(map.values());}
}

最长连续序列

题目链接
参考链接:

题目描述:

在这里插入图片描述

思路:将nums之中的所有数字放入Set之中,随后遍历set,x为当前的数字,如果x为连续数字序列的起点,则继续在set之中查找x+1是否存在,直到查找到y,那么这个连续序列的最长长度为y-x,对每个数字执行此操作,保存最大长度即可。

class Solution {public int longestConsecutive(int[] nums) {int ans = 0;Set<Integer> st = new HashSet<>();for (int num : nums) {st.add(num);}for (int num : st) {// 如果当前的数只是连续数字之中的一个,而不是连续数字的最小数字,跳过当前数字。if (st.contains(num - 1)) {continue;}// num是起点,所以我们需要遍历整个连续的额数字序列,直到不存在int y = num + 1;while (st.contains(y)) {y++;}ans = Math.max(ans, y - num);}return ans;}
}

http://www.lqws.cn/news/102439.html

相关文章:

  • smartGit 试用突破30天
  • CSS设置移动端页面底部安全距离
  • PostgreSQL的扩展 passwordcheck
  • Git 使用规范指南
  • Ⅲ-2.计算机二级选择题(三大结构之选择结构)
  • ULVAC DC-10-4P 400V input 10kW DC Pulse power supply 爱发科直流电源
  • JVM—垃圾收集算法和HotSpot算法实现细节
  • 嵌入式开发学习日志(linux系统编程--系统编程之 进程间通信IPC)Day32
  • Java Lambda 表达式的缺点和替代方案
  • 为何选择Spring框架学习设计模式与编码技巧?
  • STM32F103C8T6:解锁无限可能的应用之旅
  • STM32单片机编程中标志变量的思想无处不在
  • 焊缝缺陷焊接缺陷识别分割数据集labelme格式5543张4类别
  • 人工智能在智能教育中的创新应用与未来趋势
  • MybatisPlus--核心功能--service接口
  • 登录vmware vcenter报vSphere Client service has stopped working错误
  • 悟饭游戏厅iOS版疑似流出:未测试版
  • 基于Halcon深度学习之分类
  • 历史记录隐藏的安全风险
  • 英语写作中“不少于(小于)”no less than替代no fewer than的用法
  • 工业智能网关保障冷冻仓储设备无人值守安全运行
  • Linux(线程概念)
  • 大模型、AI人工智能:核心技术与发展趋势
  • C++概率论算法详解:理论基础与实践应用
  • 【linux】VNC无头显示器启动方法
  • 2023-2025 时序大模型相关工作汇总
  • 第三十三天打卡复习
  • DPO 算法
  • 【Unity】减少模型内存占用
  • Unity Mac 笔记本操作入门