Go CodeTop 题解
3. 无重复字符的最长子串
使用滑动窗口的思想,用一个 Map 来存储目前遇到的字符。
package main
import (
"fmt"
"math"
)
func lengthOfLongestSubstring(s string) int {
if len(s) <= 0 {
return 0
}
h := make(map[byte]int, 0)
r, l, res := 0, 0, math.MinInt64
for r < len(s) {
c := s[r]
r++
h[c]++
for h[c] > 1 {
d := s[l]
l++
h[d]--
}
res = max(res, r-l)
}
if res == math.MinInt64 {
return 0
}
return res
}
func main() {
var s string
fmt.Scanln(&s)
fmt.Println(lengthOfLongestSubstring(s))
}206. 反转链表
146. LRU 缓存
215. 数组中的第 K 个最大元素
215. 数组中的第K个最大元素 - 力扣(LeetCode)
用快速排序完成
25. K 个一组翻转链表
每次调用翻转链表翻转 K 个节点,接着递归下去即可。
15. 三数之和
53. 最大子数组和
用滑动窗口的思想来做,需要在第二个 for 循环之前将 res 赋值。
补充题:手撕快速排序
[912. 排序数组 - 力扣(LeetCode)](https://leetcode.cn/problems/sort-an-array/description/
21. 合并两个有序链表
1. 两数之和
5. 最长回文子串
102. 二叉树的层序遍历
33. 搜索旋转排序数组
200. 岛屿数量
121. 买卖股票的最佳时机
20. 有效的括号
141. 环形链表
88. 合并两个有序数组
236. 二叉树的最近公共祖先
236. 二叉树的最近公共祖先 - 力扣(LeetCode)
46. 全排列
103. 二叉树的锯齿形层序遍历
103. 二叉树的锯齿形层序遍历 - 力扣(LeetCode)
92. 反转链表 II
54. 螺旋矩阵
23. 合并 K 个升序链表
160. 相交链表
300. 最长递增子序列
415. 字符串相加
143. 重排链表
42. 接雨水
142. 环形链表 II
56. 合并区间
124. 二叉树中的最大路径和
124. 二叉树中的最大路径和 - 力扣(LeetCode)
72. 编辑距离
19. 删除链表的倒数第 N 个结点
19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)
93. 复原 IP 地址
1143. 最长公共子序列
94. 二叉树的中序遍历
82. 删除排序链表中的重复元素 II
82. 删除排序链表中的重复元素 II - 力扣(LeetCode)
199. 二叉树的右视图
704. 二分查找
232. 用栈实现队列
4. 寻找两个正序数组的中位数
4. 寻找两个正序数组的中位数 - 力扣(LeetCode)
148. 排序链表
69. x 的平方根
8. 字符串转换整数
8. 字符串转换整数 (atoi) - 力扣(LeetCode)
31. 下一个排列
22. 括号生成
2. 两数相加
70. 爬楼梯
165. 比较版本号
239. 滑动窗口最大值
41. 缺失的第一个正数
322. 零钱兑换
76. 最小覆盖子串
78. 子集
105. 从前序与中序遍历序列构造二叉树
105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)
155. 最小栈
32. 最长有效括号
43. 字符串相乘
151. 反转字符串中的单词
129. 求根节点到叶节点数字之和
129. 求根节点到叶节点数字之和 - 力扣(LeetCode)
104. 二叉树的最大深度
101. 对称二叉树
144. 二叉树的前序遍历
543. 二叉树的直径
98. 验证二叉搜索树
470. 用 Rand7() 实现 Rand10()
470. 用 Rand7() 实现 Rand10() - 力扣(LeetCode)
34. 在排序数组中查找元素的第一个和最后一个位置
34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)
64. 最小路径和
34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)
48. 旋转图像
39. 组合总数
113. 路径之和 II
394. 字符串解码
240. 搜索二维矩阵
221. 最大正方形
162. 寻找峰值
234. 回文链表
112. 路径总和
14. 最长公共前缀
128. 最长连续序列
718. 最长重复子数组
169. 多数元素
662. 二叉树最大宽度
122. 买卖股票的最佳时机 II
122. 买卖股票的最佳时机 II - 力扣(LeetCode)
62. 不同路径
226. 翻转二叉树
179. 最大数
152. 乘积最大的子数组
83. 删除排序链表中重复元素
83. 删除排序链表中的重复元素 - 力扣(LeetCode)
695. 岛屿的最大面积
227. 基本计算器 II
198. 打家劫舍
139. 单词拆分
补充题:手撕堆排序
24. 两两交换链表中的节点
297. 二叉树的序列化与反序列化
297. 二叉树的序列化与反序列化 - 力扣(LeetCode)
560. 和为 K 的子数组
209. 长度最小的子数组
最后更新于