随笔分类 -  算法

摘要:198.打家劫舍 1、动态规划 class Solution: def rob(self, nums: List[int]) -> int: # dp 数组代表在第 i 个房间可以偷窃到的最高金额为 dp[i] dp = [0] * len(nums) if len(nums) == 1: retu 阅读全文
posted @ 2023-11-30 19:15 忆象峰飞 阅读(12) 评论(0) 推荐(0) 编辑
摘要:70. 爬楼梯 (进阶) 1、使用 01 背包解法 class Solution: def climbStairs(self, n: int) -> int: # dp 数组代表爬上第 i 阶有 dp[j] 种方法 dp = [0] * (n + 1) dp[0] = 1 m = 2 # 排列先背包 阅读全文
posted @ 2023-11-30 16:16 忆象峰飞 阅读(3) 评论(0) 推荐(0) 编辑
摘要:509. 斐波那契数 1、动态规划 class Solution: def fib(self, n: int) -> int: if n <= 1: return n # dp[i] 代表第 i 个数的斐波那契值 dp = [0] * (n+1) dp[0] = 0 dp[1] = 1 for i 阅读全文
posted @ 2023-11-17 23:31 忆象峰飞 阅读(8) 评论(0) 推荐(0) 编辑
摘要:239. 滑动窗口最大值 class Solution: def maxSlidingWindow(self, nums: List[int], k: int) -> List[int]: res = [] tmp = MyQueue() for i in range(k): tmp.push(nu 阅读全文
posted @ 2023-10-23 20:31 忆象峰飞 阅读(6) 评论(0) 推荐(0) 编辑
摘要:242.有效的字母异位词 1、数组法 这个思路贼 6 ,在这个题的效率也高 class Solution: def isAnagram(self, s: str, t: str) -> bool: # 全部转为 asii 码 如果是互为异为词,则最后的 -+ 后的结果为 0 record = [0] 阅读全文
posted @ 2023-10-16 23:45 忆象峰飞 阅读(8) 评论(0) 推荐(0) 编辑
摘要:977.有序数组的平方 暴力求解(O(n+logn)) class Solution: def sortedSquares(self, nums: List[int]) -> List[int]: return sorted(i**2 for i in nums) 双指针(O(n)) 由于列表是单调 阅读全文
posted @ 2023-10-12 21:10 忆象峰飞 阅读(10) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示