摘要: 62. 不同路径 思路 这题很简单,直接动态规划即可。 公式如下: # 到达i j坐标可以从上往下也可以从左往右 f(i, j) = f(i-1, j) + f(i, j-1) (当i > 0 and j > 0) f(i, j) = 1 (当i=0或者j=0) 靠边只有1种方案 class Sol 阅读全文
posted @ 2020-11-23 23:04 米洛丶 阅读(109) 评论(0) 推荐(0)
摘要: 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)