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

力扣Hot100(Java版本)

1. 哈希

1.1 两数之和

题目描述:

  • 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

  • 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

  • 你可以按任意顺序返回答案。

力扣链接:

https://leetcode.cn/problems/two-sum/description/【简单】

解题思路:

  1. 实例化一个HashMap来保存<值, 索引>

  2. 遍历HashMap,找到就返回索引下标,找不到就添加元素

核心代码:

class Solution {public int[] twoSum(int[] nums, int target) {// map保存<值,索引>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); // 返回[索引1,索引2]}return new int[0]; // 返回[]}
}

1.2 字母异位词分组

题目描述:

  • 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

  • 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

力扣链接:

https://leetcode.cn/problems/group-anagrams/description【中等】

解题思路:

  1. Map保存<排序后的字符串, List<String>>
  2. 遍历strs, 依次添加到Map

核心代码:

class Solution {public List<List<String>> groupAnagrams(String[] strs) {// 1. Map保存<排序后的str, List<String>>Map<String, List<String>> map = new HashMap<>();// 2. 遍历strs, 依次添加到Mapfor (String str : strs){char[] charStr = str.toCharArray();Arrays.sort(charStr);String orderStr = new String(charStr);if (map.containsKey(orderStr)){map.get(orderStr).add(str);}else{List<String> temp = new ArrayList<>();temp.add(str);map.put(orderStr,temp);}}return new ArrayList<List<String>>(map.values());}
}

1.3 最长连续序列

题目描述:

  • 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

  • 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。

力扣链接:

https://leetcode.cn/problems/longest-consecutive-sequence/description【中等】

解决思路:

  1. 将nums数组的所有元素放入HashSet,去除重复元素
  2. 从序列的最小值开始找,更新最大值

核心代码:

class Solution {public int longestConsecutive(int[] nums) {// 1. 将nums数组的所有元素放入HashSet, 去除重复元素HashSet<Integer> hs = new HashSet<>();for (int i : nums){hs.add(i);}int ans = 0;for (int i : hs){// 2. 只从序列的最小值开始找if (!hs.contains(i - 1)){int curAns = 1;while(hs.contains(i+1)){i++;curAns++;}ans = Math.max(ans,curAns);}}return ans; }
}

2. 双指针

相关文章:

  • upload-labs通关笔记-第3关 文件上传之黑名单绕过
  • 深度Q网络(DQN)的基本概念
  • Mirror的多人连接管理及房间系统
  • 第六节第二部分:抽象类的应用-模板方法设计模式
  • 为什么企业需要加密软件?
  • 经典中的经典-比特币白皮书中文版
  • B站PWN教程笔记-10
  • 集成设备管理(IDM)
  • uart16550详细说明
  • 【Canda】常用命令+虚拟环境创建到选择
  • 操作系统导论——第28章 锁
  • 根据输入的数据渲染柱形图
  • 2.重建大师输入输出数据格式介绍
  • 电池自动点焊机:多领域电池制造的核心设备
  • MCU程序加密保护(一)闪存读写保护法 加密与解密
  • nginx配置反向代理支持CORS跨域请求
  • Leetcode (力扣)做题记录 hot100(49,136,169,20)
  • 关于vue 本地代理
  • Cookie、 Local Storage、 Session Storage三种客户端存储方式
  • Model Context Protocol -MCP创建Agent - Part1
  • 黄仕忠丨戏曲文献研究之回顾与展望
  • 金正恩观摩朝鲜人民军各兵种战术综合训练
  • 真人秀《幸存者》百万美元奖金,25年间“缩水”近一半
  • 人大新闻教育70年丨16759门课程里的时代密码
  • 从采购到销售!市场监管总局指导行业协会防控肉品风险
  • 巴基斯坦外长:印巴已同意立即停火