- 博客(22)
- 收藏
- 关注
原创 JS/异步-promise和fetch API
在单线处理的命令逻辑中,将耗时较长的程序从queue里拎出来,延迟?时间后,再callback回执行队列里,让该程序的执行不影响其他线性运行的程序。
2023-10-14 13:14:47
185
原创 round1/day25补/子序列
为什么不是i和j为结尾?——判定条件是从i-1开始的,也就是起始于i=0,j=0的情况,而dp[1][1]=dp[0][0]+1。所以要比较最后一位的结果,必须让i=nums1.length,超出nums1数组的长度,才能确保dp[i-1]定位到nums1的最后一个元素。它是以nums[i]为结尾的最长序列,但是并没有讨论如果有比nums[i]更大的数应该取谁,故在每一层的遍历i、得出dp[i]之后,还应该跟一个全局的max值再比较。注意dp数组的定义,是以i-1,j-1为结尾。
2023-10-14 10:48:59
36
原创 round1/day23补/动规/股票问题2
分成两种状态和,再拆分两种子情况:注意理解什么叫“持有”而不是“卖出”什么是-prices[i]?——目的是找到最小的-price[i],让买入值最低。因为一开始和他比较的值就是price[0]的买入价,而不是0。
2023-10-14 10:18:13
43
1
原创 round1/day19/完全背包02
物品:硬币们coins。物品价值/重量coins[i],物品特性无限使用+组合需去重,物品数量dp[j]因为是求min,所以dp的初始值必须最大化,而不能只用dp[0]=0。遍历nums,完全背包情况3:完全背包-完全装满-求物品最小数量。遍历n里的所有数字,挑出完全平方数数组nums。类似322,多了一个提取完全平方数的步骤。:完全装满背包时,物品的最小数量。- 背包容量:amount总金额。注意不去重:顺序不同的序列可以。
2023-10-04 12:06:58
38
1
原创 round1/day14&15/动规3-01背包
int[]数组求和:Arrays.stream(nums).sum()转为01背包问题:01背包的应用:注意j遍历的边界,为了步数组越界,需要的是j-stones[i]>=0,即j>=stones[i]
2023-09-30 12:36:39
57
原创 round1/day9补/贪心2
还没有悟,什么情况下可以判断我在做局部的最优解?什么是局部最优?什么是整体最优?证明局部最优可以导向整体最优吗?
2023-09-22 21:47:38
24
1
原创 打卡round1/day7/回溯算法:总结
4.2 问:每层遍历中,需要递归的是除了nums[i]的部分,还是nums[i]之后的剩余部分?注意:如果需要在递归中执行操作,如sum、增加字符、改变used[i]=true等,记得回退时一并删除。2.3 情况3: 返回的不是套娃数组,而是二维数组(或转换后的字符串),如棋盘问题。每层遍历返回一条path,经过n层遍历后,return path的集合result。3.2 情况2:以遍历到最后一行/遍历满k个元素作为终止,如返回所有k个数的组合。注意:如果有sum等计算,回退时不要忘记。
2023-09-18 23:25:16
37
原创 打卡round1/day2&3/回溯算法2-分割
思路重复:首先,然后进行递归,如果不符合条件,就回退到上一个状态,继续尝试其他选择。重点是:要先进入一个正确的选择才能递归,即在里进行递归。
2023-09-10 23:41:30
79
原创 打卡round1/day1/回溯算法1-组合
以[1,2,3,4]中取2个数的组合为例,将排列组合结果以树的方式陈列出来,就会发现,需要记录所有长度为k的path,即套娃遍历for循环要进行k次,每次遍历则需要涵盖本层树上的所有节点,即n/n-1/n-2/...个节点。回溯/递归,本质上是把问题抽象成一个树型结构,然后用树的思路来解决。树是一种思考工具,我们说到树,是基于树这种数据排列方式来进行数据的处理,而不是呆板地视作一种固定的数据结构再来解决它。问:怎么确保遍历的时候不重复收集之前已经录入path的节点?3. 本层树递归时的逻辑怎么写?
2023-09-09 16:55:06
109
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人