Leetcode周赛174
1.方阵中战斗力最弱的 K 行3
2.数组大小减半4
3.分裂二叉树的最大乘积5
4.跳跃游戏 V 6
一小时完成三题。最后一题没看,最后一题解法Po出。
1.方阵中战斗力最弱的 K 行3
1 | class Solution(object): |
2.数组大小减半
1 | class Solution(object): |
3.分裂二叉树的最大乘积5
1 | # Definition for a binary tree node. |
4.跳跃游戏 V 6
解题思路
可以看成有向图上求最长路径。
把这个数组转换成一个无环有向图。
利用 mp 数组存每个点能直接到达的节点。
dfs 用于递归求一个点的解。一个点的解就是这个点能到的所有点里解最大的一个加一。(如果他哪也到不了,就是 1)
ansx 做了记忆化搜索,防止求重复的点的解。这里可以使用 functools 中的 lru_cache(None) 代替自己定义数组,写法更简洁。
1 | class Solution: |