day001

0 阅读2分钟

📅 第1天 - 开始新征程

日期: [2026/01/22] 总题数: 3题 学习时间: 约90分钟

🆕 新题学习

  1. 题目#1 - [lc1:两数之和]

    • 分类:哈希
    • 难度:⭐
    • 思路总结:基础的base两数之和,注意保存的时候目标值相减少,使用map用空间换时间,保存[值, 下标]的方法。
    • 关键代码:!map.has(target - nums[i])
    • 时间复杂度:O(n)
    • 空间复杂度:O(n)
  2. 题目#2 - [lc49:字母异位词分组]

    • 分类:哈希
    • 难度:⭐⭐
    • 思路总结:关键还是使用哈希表方法,将每个元素排序后的值看做key存入map中,在数组循环中存入[每个排序后的key值, []] 如果存在就直接push到value,不存在就新建一个空数组保存,最后返回map的valuse() 归类好的字符类型。
    • 关键代码:
       const sortX = x.split("").sort().join("");
       const arr = map.get(sortX) || [];
    
    • 时间复杂度:O(n*klogk)
    • 空间复杂度:O(nk)
  3. 题目#3 - [lc128:最长连续序列]

    • 分类:哈希
    • 难度:⭐⭐
    • 思路总结:找到最长连续序列,给出的nums是无序的整数数组,首先把nums转换成唯一的set结构,循环set对象找连续递升的数据规律,循环中要找到头数,如果set存在当前循环数x - 1 那么就不是头数,需要跳过;找到头数后开始进入,子循环,查看 y = x + 1 在数组内是否存在;更新最大值ans 是 y - x (y 在实际的 + 1 不满足条件,跳出了循环, 实际公式是: y - 1 - x + 1)
    • 关键代码:
       if (numSet.has(x - 1)) {
          continue;
       }
    
    • 时间复杂度:O(n)
    • 空间复杂度:O(n)

🔄 今日复习

  • 无复习任务

📊 今日统计

  • ✅ 新题完成:3题
  • ✅ 复习完成:0题
  • ✅ 总完成:3题

💭 学习感悟

[记录今日学习心得、难点、突破点]

  • 看到题目2分钟内没有思路,我就马上看题解
  • 看完题解后一定要自己再动手敲一遍,有时候看懂了,不一定能写出来
  • 在自己完成中会出现很多细节的错误,导致无法ac,这个细节一定要多注意!多反思自己错误,易错逻辑点
  • 最后建议复习的时候要掐点完成,模拟在有压力的情况下去稳定发挥
  • 不管通过什么方法,一定要学习尝试分析这段代码的:时间和空间复杂度,会写还要会分析

最后

感谢看到最后
①如果有不同看法,欢迎在文章下方留言、评论
②如果对你有启发或帮助,欢迎恰个点赞吧,谢谢支持
文章内容仅供学习参考,如有侵权,非常抱歉,请立即联系作者删除