LeetCode & Python
函数
enumerate()
1 | 'one', 'two', 'three'] seq = [ |
容器
dict() :字典,哈希表实现,相当于unored_map
只出现一次的数字
题意
V1:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。要求O(N),且不使用额外空间。
V2:除一个元素仅出现 一次 外,其余每个元素都恰出现 三次 。要求O(N),且不使用额外空间。
V3:除两个元素仅出现 一次 外,其余每个元素都恰出现 两次 。要求O(N),且不使用额外空间。
思路
V1:全部异或起来就行了
V2:计算每位出现的次数,%3。拼接起来就是答案
V3:设答案为a,b。先全部异或起来,结果最低1的位数,表示a和b不同的一位,以此再遍历一遍数组得到答案。
代码
V3:
1 | class Solution: |
最多水的容器
题意
给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
返回容器可以储存的最大水量。
思路
双指针,在初始时,左右指针分别指向数组的左右两端,每次移动对应高度较小的那个指针。
证明:如果移动较大的指针,后面的答案只会更小。
代码
1 | class Solution: |
题意
思路
代码
1 |
题意
思路
代码
1 |
题意
思路
代码
1 |
题意
思路
代码
1 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 魔法使いの秘密基地!
评论