日刷leetcode(第二周)
1 + 4 + 3 + 8 + 5 + 4 + 1 = 26
本周共刷👨💻 精选 TOP 面试题26道题目。
2020-03-17 周二
- 287. 寻找重复数
https://leetcode-cn.com/problems/find-the-duplicate-number/solution/kuai-man-zhi-zhen-de-jie-shi-cong-damien_undoxie-d/
抽屉原理题目
https://leetcode-cn.com/problems/find-the-duplicate-number/solution/er-fen-fa-si-lu-ji-dai-ma-python-by-liweiwei1419/
简单的问题用数学表示
妈咪生日,未能按预期完成任务,移至下一天
2020-03-18 周三
-
208. 实现 Trie (前缀树) 没要求统计,可字典简化实现
hashmap
比hashset
好?两者底层都一样吧
存储两端跟方法三的以最大值形式存储左端,遍历右端本质上也是一样的
字典统计,时间复杂度O(n)
Boyer-Moore 投票算法
本质上在将多数元素与其他数的数量一一抵消,剩下的一定是多数元素
要求多数元素的数量超过总数的一半
- 13. 罗马数字转整数
hashmap换成switch,速度差异不大
2020-03-19 周四
-
层次遍历
-
深度遍历(前序遍历),‘_’表示分隔符,‘#’表示None,用函数表示,更清晰地逻辑
-
广度遍历
-
341. 扁平化嵌套列表迭代器 看不懂… yield我理解起来很费劲
2020-03-20 周五
- 11. 盛最多水的容器
以左右端最小值为高度,元素个数为长度,计算容量
暴力遍历O(n^2)python3实现超时
双指针法O(n)
- 移动最大值那段,无法改变另一端的最小值,高度不会增加,而长度减少,容量只会减少;
- 因此移动最小值那端,才有机会在长度减少的情况下增加高度,从而扩大容量;
- 相等时任意移动一端
python3实现双指针代码,左右两端值比较两个逻辑可以合并,为程序逻辑清晰,暂且不改
def maxArea(self, height: List[int]) -> int:
if len(height) < 2:
return 0
left = 0
right = len(height) - 1
max_area = 0
while left < right:
if height[left] > height[right]:
boundary = height[right]
else:
boundary = height[left]
area = boundary * (right - left)
if area > max_area:
max_area = area
if height[left] < height[right]:
left += 1
else:
right -= 1
return max_area
- 239. 滑动窗口最大值
- 202. 快乐数
证明n的取值范围有限,不可能出现无限不循环的链
快慢指针解决,若是循环,必定可以追上,判断追上时是否为1即可
快乐数规律:快乐数死循环 - 190. 颠倒二进制位 二进制快捷运算?
- 268. 缺失数字
0~n的和为(n + 1) * n // 2,减去数组nums
的和,即为缺失值
考虑到java求和有数据类型溢出,将加法运算替换为异或运算
0~n与数组nums
中所有值异或,异或结果即为缺失值
-
328. 奇偶链表
解决链表问题最好的办法是在脑中或者纸上把链表画出来
注意防止成环 -
215. 数组中的第K个最大元素
排序算法,容量为k的小根堆,快排中的划分(最终进阶BFRPT)
排序法 -> 小根堆 -> 快排划分法 -> BFPRT算法
有个哥们的代码需要进步学习下
数的范围暂时没用到,明日看他人解法学习下
关于python的小根堆/大根堆实现
手撸代码,pq以及 heapq
2020-03-21 周六
-
递归
-
160. 相交链表
构造长度相等,包括以前使用的快慢指针 -
115. 不同的子序列 友情支援伯川
https://leetcode-cn.com/problems/distinct-subsequences/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by-27/
2020-03-22 周日
- 49. 字母异位词分组
字符种类及对应数量相同 - 155. 最小栈 左神
- 217. 存在重复元素
- 101. 对称二叉树
层次遍历,判断数组是否对称,类似于102. 二叉树的层次遍历
相似题目:987. 二叉树的垂序遍历
上午逛街买衣服,周赛没打