LeetCode hot 100 解题思路记录(一)
前情提要
本文是个人学习的粗糙笔记,仅记录思路和图解(跳过了困难题,等之后再弄)
视频看的是油管上的neetcode
哈希 3
哈希表的优点,查询时间复杂度低、可去重、键-唯一、值-链表或红黑树
两数之和(简单)
两种解法的图示:
哈希表解题思路:遍历
检查哈希表里是否有对应的数值,有则返回两个索引,否则存储数据和索引
containsKey()检查哈希表中是否存在所需数值
put()可以放数据和索引
get()获取索引
字母异位词分组
综合思路:哈希表的键是同一组字母异位词的标志
哈希表的值是一组字母异位词列表
哈希表的键:字符串——>字符数组——>排序——>新字符串,即排序后的字符串
长度为26的数组记录每个字母出现次数
根据该数组将出现的字母和出现次数按顺序拼接成字符串
哈希表的值:对应的异位词列表,添加字符串到该列表中
更新哈希表的键值对
返回哈希表中所有的值
最长连续序列
思路如下:
哈希表——所有数字存入哈希表中,唯一性可去重
序列起始点——遍历哈希表,寻找序列起始点
序列长度——从起始点向后扩展计算序列长度,维护并更新最大序列长度
双指针 7
移动零(简单)
盛最多水的容器
三数之和
三个数字不等、保证L在R左边
接雨水(困难)
两种方法
滑动窗口 9
无重复字符的最长子串
找到字符串中所有字母异位词
思路一:
比较的内容是统计S中Plength长度和P中字符出现次数
初始化窗口——>
滑动,左删右增,利用count的减加实现——>
判断S和P的count是否相等以便记录初始索引
思路二:
只用一个count
初始化窗口,S增P减,用differ记录conut不为0的个数——>
滑动,