随笔分类 - 算法
摘要:1、静态链表初始化 head指向-1代表当前为空链表,pool指向下一个可用空间(在数组下标为2的空间),2指向3,3指向4,最后的指向0表示没有下一个节点,以此链接起来。 2、实现代码 #include<stdio.h> #include<malloc.h> #define MAX_SIZE 20
阅读全文
摘要:343. 整数拆分 题目链接:343. 整数拆分 - 力扣(LeetCode) 思路 动规五部曲,分析如下: 确定dp数组(dp table)以及下标的含义 dp[i]:分拆数字 i,可以得到的最大乘积为dp[i]。 确定递推公式 可以想 dp[i]最大乘积是怎么得到的呢? 其实可以从1遍历j,然后
阅读全文
摘要:62.不同路径 题目链接:62. 不同路径 - 力扣(LeetCode) 思路 确定dp数组(dp table)以及下标的含义 dp[i][j] :表示从(0 ,0)出发,到(i, j) 有dp[i][j]条不同的路径。 确定递推公式 dp[i][j] = dp[i - 1][j] + dp[i][
阅读全文
摘要:动态规划理论基础 动态规划五步曲: 确定dp数组(dp table)以及下标的含义 确定递推公式 dp数组如何初始化 确定遍历顺序 举例推导dp数组 509. 斐波那契数 题目链接:509. 斐波那契数 - 力扣(LeetCode) 思路 确定dp数组以及下标的含义 dp[i]的定义为:第i个数的斐
阅读全文
摘要:738.单调递增的数字 题目链接:738. 单调递增的数字 - 力扣(LeetCode) 思路 将数字转换成字符数组形式,然后从后向前遍历,当遇到当前这个数大于后一个数的时候,这个数减一,他的后一个数赋为9,这也是贪心策略。 在代码实现上,可以设置一个start变量来记录需要变为 9 的起始位置。
阅读全文
摘要:435. 无重叠区间 题目链接:435. 无重叠区间 - 力扣(LeetCode) 思路 这道题首先进行排序,使得相邻的区间紧挨在一起。按左边界或者右边界都可以。 其次定义一个变量result记录重叠的数目,当确定区间有重叠时,result++,同时取这两个区间右边界的最小的一个即可。 代码 按右边
阅读全文
摘要:860.柠檬水找零 题目链接:860. 柠檬水找零 - 力扣(LeetCode) 思路 这道题有如下三种情况: 情况一:账单是5,直接收下。 情况二:账单是10,消耗一个5,增加一个10 情况三:账单是20,优先消耗一个10和一个5,如果不够,再消耗三个5 所以局部最优:遇到账单20,优先消耗美元1
阅读全文
摘要:1005.K次取反后最大化的数组和 题目链接:1005. K 次取反后最大化的数组和 - 力扣(LeetCode) 思路 贪心思路,局部最优:让绝对值大的负数变为正数,当前数值达到最大,整体最优:整个数组和达到最大。 当数组中的负数全部取反后,K仍然大于0时,这时又是一个贪心:局部最优:只找数值最小
阅读全文
摘要:把利润分解为每天为单位的维度,而不是从0天到第3天整体去考虑!122.买卖股票的最佳时机II 题目链接:122. 买卖股票的最佳时机 II - 力扣(LeetCode) 思路 这道题使用贪心算法思路为:把利润分解为每天为单位的维度,而不是从0天到第3天整体去考虑! 将数据画成折现图 根据图中可以很明
阅读全文
摘要:455.分发饼干 题目链接:455. 分发饼干 - 力扣(LeetCode) 思路 这里的局部最优就是大饼干喂给胃口大的,充分利用饼干尺寸喂饱一个,全局最优就是喂饱尽可能多的小孩。 也可以换一个思路,小饼干先喂饱小胃口。 代码 1 class Solution { 2 // 思路1:优先考虑饼干,小
阅读全文
摘要:491.递增子序列 题目链接:491. 递增子序列 - 力扣(LeetCode) 思路 这道题和 90.集合II 类似。不同的是这道题不能通过排序使相同元素聚集在一起,因此不能使用 used数组 或者 startIndex 的方法去重。 在这道题中,虽然我们不可以让相同元素聚集在一起,但是我们可以通
阅读全文
摘要:93.复原IP地址 题目链接:93. 复原 IP 地址 - 力扣(LeetCode) 思路 复原ip地址,本质上还是切割问题,但是有了不少的条件: 只能切成4段。 每一段的长度如果大于1,那么就不能是0开头。如果长度为1,可以是0。 每一段的数字在0~255之间。 于是我们对之前切割回文的代码进行修
阅读全文
摘要:39. 组合总和 题目链接:39. 组合总和 - 力扣(LeetCode) 思路 既然题目说可以数组中的数可以无限制重复被选取,那么说明在选取该元素的下一个分支也可以继续使用。 选取和剪枝过程如图: 注意:为什么取了2以后,剩余元素为5,3。因为如果剩余元素为2,5,3的话在后续操作中会出现重复值的
阅读全文

浙公网安备 33010602011771号