摘要: 147. 对链表进行插入排序 思路 维护一个排好序的链表,剩下的值如果比已排好的大,直接放到尾部,如果比之前小,则从链表头遍历,找到对应的位置并插入。 为了很好找到链表头,需要设置一个哑节点。 # Definition for singly-linked list. # class ListNode 阅读全文
posted @ 2020-11-23 22:56 米洛丶 阅读(88) 评论(0) 推荐(0)
摘要: 34. 在排序数组中查找元素的第一个和最后一个位置 思路 看到排序数组,基本上二分解法占一半,记得刚开始去字节面试的时候,面试官出了一题找出数组(先递增再递减)的峰值,也就是什么时候开始递减的。 答的是扫描,那样如果峰值很靠后的话,算法不是最优解,利用二分可以达到O(logN),虽然最终在面试官的引 阅读全文
posted @ 2020-11-23 22:44 米洛丶 阅读(101) 评论(0) 推荐(0)
摘要: 221. 最大正方形 动态规划 求的是最大面积,可以转换为求最大边长。 创建一个二维数组dp dp是以i, j坐标为右下角的正方形的最大边长。 状态转移方程式: matrix[i][j] == "1"的时候: f(i, j) = min(f(i-1, j), f(i, j-1), f(i-1, j- 阅读全文
posted @ 2020-11-23 22:42 米洛丶 阅读(98) 评论(0) 推荐(0)
摘要: 11. 盛最多水的容器 思路 这题有点像接雨水,但是比接雨水简单的是,这个中间是没有木棍的,所以很容易计算出2根棍子能装多少水。 根据木桶效应,容器装水多少是根据最短那块来决定的。 本题用双指针的方式,首先比较两侧木板较短的那块板子,记录下值,如果右侧小则右侧的指针移动,为啥呢,因为右侧可能会有更高 阅读全文
posted @ 2020-11-20 20:44 米洛丶 阅读(100) 评论(0) 推荐(0)
摘要: 重点 首先注意几个重点: 1. arr1和arr2里最大的元素不会超过1000 2. arr2里面没有重复的元素 3. arr2里面每个元素必定在arr1里面出现 思路 1. 先创建一个大小为1001的数组data用来存放arr1中每个元素出现的次数(因为最大值可能是1000),其实这里可以简化,只 阅读全文
posted @ 2020-11-20 20:42 米洛丶 阅读(99) 评论(0) 推荐(0)
摘要: 题目链接: 922. 按奇偶排序数组 II 思路 很简单,搞懂问题的核心就行,假设现在有奇数在偶数位上,偶数在奇数位上。 那么我们要做的就是,找到分别在对方位置上的数字,然后交换他们就行。 class Solution: def sortArrayByParityII(self, A: List[i 阅读全文
posted @ 2020-11-20 16:03 米洛丶 阅读(164) 评论(0) 推荐(0)
摘要: 题目链接: 15. 三数之和 解法 暴力法 首先可以确定的是暴力法的时间复杂度是O(N³), 所以基本上不考虑此等解法。 排序+双指针 思路是先将数组排序(从小到大),然后固定数组的第一位。 定义2个指针(左右指针)分别指向定位数组的后一位和数组最后一位。 如果3个数字加起来比0小,则左指针右移,循 阅读全文
posted @ 2020-11-20 14:48 米洛丶 阅读(171) 评论(0) 推荐(0)
摘要: hash表 1. 思路很简单,先遍历数组,存储每个元素的个数 2. 遍历hash表,拿到大于 n/2的数字,直接return class Solution: def majorityElement(self, nums: List[int]) -> int: hash = dict() for n 阅读全文
posted @ 2020-11-20 14:47 米洛丶 阅读(102) 评论(0) 推荐(0)
摘要: 首先要弄清楚题目的意图,曾经在字节面试遇到过类似的题目,但那题是需要找出这个峰值。 所以解法也肯定不一样。 官方给的题解是直接遍历,我们这里采用双指针分别从头和尾往中间遍历,如果山脉符合要求,那么2个指针会停在同一个山脉。 class Solution: def validMountainArray 阅读全文
posted @ 2020-11-03 11:06 米洛丶 阅读(68) 评论(0) 推荐(0)
摘要: 空间换时间,hash表2次遍历(Python) 潇洒解法: 利用Python的set数据结构,完成交集操作 class Solution: def intersection(self, nums1: List[int], nums2: List[int]) -> List[int]: return 阅读全文
posted @ 2020-11-03 11:05 米洛丶 阅读(89) 评论(0) 推荐(0)