LeetCode热题100 刷题笔记(第一天)哈希 「两数之和」

前言

这几天不是在写文章总结黑马点评吗,感觉敲代码的能力确实有点欠缺了,主要是敲项目代码的时候,接入了AI,大部分代码都是直接按Tab键自动生成的,代码能力确实有一点退步了🤪🤪🤪,这几天学学数据结构,刷刷题🏄🏄🏄,冲冲冲一天一道,(但是我感觉可能坚持不下去🤪)

LeetCode 第 1 题「两数之和」

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

示例 :

输入:nums = 2,7,11,15, target = 9

输出:0,1

解释:因为 nums0 + nums1 == 9 ,返回 0, 1 。

java 复制代码
public class Code1 {
  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[]{i, map.get(target - nums[i])};
          }
          map.put(nums[i], i);
      }
      return new int[]{};
  }
  }
用到的哈希表操作
java 复制代码
/* 初始化哈希表 */
Map<Integer, String> map = new HashMap<>();

/* 添加操作 */
// 在哈希表中添加键值对 (key, value)
map.put(12836, "哈哈哈");

/* 查询操作 */
// 向哈希表中输入键 key ,得到值 value
String name = map.get(15937);

/* 删除操作 */
// 在哈希表中删除键值对 (key, value)
map.remove(10583);

/*查找操作*/
// 在哈希表中有没有这个key
map.containsKey(你要寻找的key值)

核心判断逻辑

java 复制代码
if (map.containsKey(target - nums[i])) {
    return new int[]{i, map.get(target - nums[i])};
}
  • 计算 complement = target - numsi:即当前元素需要配对的另一个数。
  • 检查 map 中是否已存在 complement:
    • 若存在:说明之前遍历过的某个元素 + 当前元素 = target,直接返回 当前下标i, complement的下标。
    • 若不存在:继续执行下一步

存入哈希表

java 复制代码
map.put(nums[i], i);
  • 将当前元素 numsi 和其下标 i 存入哈希表,供后续元素查询配对。

✅ 算法优势

  • 时间复杂度:O (n),仅遍历一次数组,哈希表查询为 O (1)。
  • 空间复杂度:O (n),最坏情况下需要存储所有数组元素。
  • 对比暴力枚举(O (n²)),此解法在大数据量下性能更优。
    🙌🙌🙌简单来说就是利用hash表用空间换时间
    如果想了解Hash表的底层啥的可以看看我这篇文章( 也是我写的哈哈哈 ): 链接: Java(集合---HashMap的使用和实现原理红黑树)

小白啊!!!写的不好轻喷啊🤯如果觉得写的不好,点个赞吧🤪(批评是我写作的动力)

...。。。。。。。。。。。...

...。。。。。。。。。。。...

相关推荐
ZhengEnCi24 分钟前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
算法·架构
秋天的怀念_David1 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Pniubi1 小时前
力扣283移动零(双指针法)
算法·leetcode·职场和发展
hhb_6181 小时前
大模型落地三重优化实战
人工智能·算法·机器学习
云和数据.ChenGuang2 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
一木 之林2 小时前
Dify学习笔记 03 · RAG检索增强生成:三代范式、评估与落地(第40-45、55-56集)
笔记·小程序·交互·dify
2601_970703833 小时前
工业除湿机租赁:把一份租金合同拆开看
大数据·数据结构·算法·数据库架构·推荐算法
心中有你02143 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
ZhengEnCi4 小时前
同样的模型,为什么本地和云 API 差别那么大:量化精度、聊天模板与采样参数的三大元凶
人工智能·算法·llm
Flynn Liang5 小时前
RAG 答非所问/幻觉怎么破?Spring AI QuestionAnswerAdvisor 召回优化实战(TopK/重排/混合检索)
人工智能·算法·spring·rag·幻觉·springai