LeetCode
文章平均质量分 85
算法的乐趣岂是你我能够揣度的
Thecoastlines
努力是为了让自己不再平庸
展开
-
【LeetCode】LeetCode之乘积为正数的最长子数组长度——暴力枚举+动态规划+Kadane算法
动态规划核心三要素:阶段:分解子问题,子问题与原问题求解过程相同状态:每个阶段都有一个或多个状态决策:根据当前的决策,确定下一阶段的状态那么怎么分析该问题呢?怎么确定状态呢?由于本题存在负负得正得情况,所以需要使用两个dp数组保存当前状态,一个是positive(正数)数组,一个是negative(负数)数组;【因为负数乘以负数有可能得到一个更大的值呀】原创 2021-12-14 21:24:51 · 534 阅读 · 4 评论 -
【LeetCode】LeetCode之乘积最大子数组——枚举+动态规划+Kadane算法
其实本质上Kadane算法还是使用的是动态规划思想,说白了它就是将动态规划的空间复杂度优化到了O(1),本质上就是动态规划。上述动态规划是使用两个dp数组作为记忆集的,我们会发现每次求解出的当前状态的结果只会被下次使用一次。所以可以通过变量每次保存当前阶段的结果,然后当求解出下一阶段的结果时,会使用该变量一次,最后计算出了下一阶段得结果,最后赋值给我当前变量即可。循环使用!原创 2021-12-14 10:35:07 · 866 阅读 · 0 评论 -
【LeetCode】LeetCode之跳跃游戏Ⅱ——暴力解法+动态规划+贪婪算法
求解f(n)无非就是求距离最后一个位置最远且可达的位置+1。那么它的dp[i]就代表当前位置的最少跳跃次数。转移方程那肯定就是dp[n]=dp[a]+1,a就代表距离n最远的那个位置的下标。【由于这个a是无法直接确定的,所以需要一个内层循环提供支持】反向查找,我们可以考虑最后一步前的位置,因此我们可以考虑最后一步跳跃前所在的位置,该位置通过跳跃能够到达最后一个位置。你可能我会说如果有多个能够达到最后一个位置,该怎么选择呢?我们肯定会选择距离最后一个位置最远的那一个。原创 2021-12-11 23:24:44 · 760 阅读 · 0 评论 -
【LeetCode】LeetCode之跳跃游戏——动态规划+贪心算法
【LeetCode】LeetCode之打家劫舍【暴力递归、动态规划、动态规划之优化空间的具体分析与实现】https://blog.csdn.net/Kevinnsm/article/details/121838892?spm=1001.2014.3001.5501【LeetCode】LeetCode之打家劫舍Ⅱ——暴力递归+动态规划解决循环问题+DP空间优化https://blog.csdn.net/Kevinnsm/article/details/121813241?spm=1001...原创 2021-12-10 21:34:12 · 255 阅读 · 0 评论 -
【LeetCode】LeetCode之删除并获得点数——动态规划、排序+动态规划
LeetCode之打家劫舍【暴力递归、动态规划、动态规划之优化空间的具体分析与实现】LeetCode之打家劫舍Ⅱ——暴力递归+动态规划解决循环问题+DP空间优化1.题目描述给你一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除 所有 等于 nums[i] - 1 和 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获原创 2021-12-09 22:56:32 · 594 阅读 · 0 评论 -
【LeetCode】LeetCode之打家劫舍Ⅱ——暴力递归+动态规划解决循环问题+DP空间优化
这道题和第 198 题相似,建议读者首先阅读「198. 打家劫舍」????LeetCode之打家劫舍Ⅰ:LeetCode之打家劫舍Ⅰ1.打家劫舍II 题目描述你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最原创 2021-12-09 13:16:54 · 2038 阅读 · 0 评论 -
【LeetCode】LeetCode之打家劫舍【暴力递归、动态规划、动态规划之优化空间的具体分析与实现】
【LeetCode】LeetCode之打家劫舍【暴力递归、动态规划、动态规划之优化空间的具体分析与实现】你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1原创 2021-12-08 20:53:54 · 1166 阅读 · 0 评论