摘要: 31. 下一个排列 思路 首先说一下什么是字典序,把1 2 3当作a b c的话,abc有6种排列顺序。 abc acb bac bca cab cba 上图就是字典序,题目的要求狠简单: 找到下一个字典序,如果没有的话,则输出最小的序号。 首先明确一下,没有下一个序列的情况,那么就是大的全部在前面 阅读全文
posted @ 2020-11-23 22:46 米洛丶 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 34. 在排序数组中查找元素的第一个和最后一个位置 思路 看到排序数组,基本上二分解法占一半,记得刚开始去字节面试的时候,面试官出了一题找出数组(先递增再递减)的峰值,也就是什么时候开始递减的。 答的是扫描,那样如果峰值很靠后的话,算法不是最优解,利用二分可以达到O(logN),虽然最终在面试官的引 阅读全文
posted @ 2020-11-23 22:44 米洛丶 阅读(91) 评论(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 米洛丶 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 11. 盛最多水的容器 思路 这题有点像接雨水,但是比接雨水简单的是,这个中间是没有木棍的,所以很容易计算出2根棍子能装多少水。 根据木桶效应,容器装水多少是根据最短那块来决定的。 本题用双指针的方式,首先比较两侧木板较短的那块板子,记录下值,如果右侧小则右侧的指针移动,为啥呢,因为右侧可能会有更高 阅读全文
posted @ 2020-11-20 20:44 米洛丶 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 重点 首先注意几个重点: 1. arr1和arr2里最大的元素不会超过1000 2. arr2里面没有重复的元素 3. arr2里面每个元素必定在arr1里面出现 思路 1. 先创建一个大小为1001的数组data用来存放arr1中每个元素出现的次数(因为最大值可能是1000),其实这里可以简化,只 阅读全文
posted @ 2020-11-20 20:42 米洛丶 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 题目: 328. 奇偶链表 思路 定义3个指针,分别为jishu(指向第一个节点), oushu(第一个偶数节点)和oushu_head(第一个偶数节点) # Definition for singly-linked list. # class ListNode: # def __init__(se 阅读全文
posted @ 2020-11-20 20:19 米洛丶 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 题目链接: 922. 按奇偶排序数组 II 思路 很简单,搞懂问题的核心就行,假设现在有奇数在偶数位上,偶数在奇数位上。 那么我们要做的就是,找到分别在对方位置上的数字,然后交换他们就行。 class Solution: def sortArrayByParityII(self, A: List[i 阅读全文
posted @ 2020-11-20 16:03 米洛丶 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目链接: 15. 三数之和 解法 暴力法 首先可以确定的是暴力法的时间复杂度是O(N³), 所以基本上不考虑此等解法。 排序+双指针 思路是先将数组排序(从小到大),然后固定数组的第一位。 定义2个指针(左右指针)分别指向定位数组的后一位和数组最后一位。 如果3个数字加起来比0小,则左指针右移,循 阅读全文
posted @ 2020-11-20 14:48 米洛丶 阅读(147) 评论(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 米洛丶 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 首先要弄清楚题目的意图,曾经在字节面试遇到过类似的题目,但那题是需要找出这个峰值。 所以解法也肯定不一样。 官方给的题解是直接遍历,我们这里采用双指针分别从头和尾往中间遍历,如果山脉符合要求,那么2个指针会停在同一个山脉。 class Solution: def validMountainArray 阅读全文
posted @ 2020-11-03 11:06 米洛丶 阅读(61) 评论(0) 推荐(0) 编辑