首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
每日算法
linyv
创建于2022-11-29
订阅专栏
发现问题--->思考问题--->解决问题--->提升自我
暂无订阅
共126篇文章
创建于2022-11-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
整数替换——贪心
代码 1 递归枚举所有情况: 先除 2 再加 1 ,防止 n + 1 越界 代码 2 记忆化搜索: 代码 1 的优化,记录递归情况 代码 3 贪心:
摆动序列——贪心
代码 1 动态规划: 动态转移方程 当然下面代码依然可以优化 up 结尾为上升 down 结尾为下降 代码 1 优化 代码 2 贪心: prediff 上一个差异 diff 当前差异
递增的三元子序列——贪心
代码 1 双向遍历: 如题:找到一个元素,其左有一个小于自己的元素,其右有一个大于自己的元素 每次遍历满足一个条件,第一次正向遍历,找到当前元素的左边的最小值 第二层反向遍历,找到当前元素右边的最大值
按要求补齐数组——贪心
代码: 对于正整数 x,如果区间 [1,x−1] 内的所有数字都已经被覆盖,且 x 在数组中,则区间 [1,2x−1] 内的所有数字也都被覆盖。
拼接最大数——单调栈
代码: maxSubsequence 函数来求单调栈 lexicographicalLess 函数来比较两个数组的大小 merge 函数来合并两个子数组 maxNumber 函数,来分配子问题,并维护
去除重复字母——贪心 + 单调栈
代码: left 数组表示 s 中各个字符的数量 stack 特殊要求的单调递增栈 instack 表示某字符是否已经加入栈 遍历字符串 s ,每遍历一个字符,则在 left 中将该字符数量减一,以此
最大数——排序
代码: 排序,制定排序规则,模拟两个数谁在前谁在后,然后返回两个模拟结果的比较即可 如果第一个元素为 0 ,直接返回 0 即可(特殊情况) int 数组转 字符串 代码2: ans 生成方式不同 将数
分发糖果——算法
代码两次遍历: 所以我们第一次遍历只记录满足左规则的各个学生的糖果数 在第二次遍历时,将满足右规则的答案得出,取两者的最大值即可, 代码常数空间遍历: 记录当前递减序列的长度 dec,最近的递增序列的
加油站——贪心
代码贪心: 遍历每一个加油站,判断是否可以绕环路一圈 但可以发现,从 a 点起,最多到达 b 点,两点中间的 点,最多也是到达 b 点 故而我们从 0 开始遍历,找到最远可以到达的位置,我们从这个最远
完全平方数——动态规划
代码动态规划: 状态转移 1 到 根号 i 中的数做最后一次转换,也就是 f[i-(j的平方)] 然后再加 1 即可
数字 1 的个数
枚举每一数位上的 1 的个数 for 循环从个位数上的 1 的个数开始累加答案 (n/(mulk*10))*mulk 表示有多少个完整的循环, 后者则是表示不完整的那个循环中有多少个当前位数的 1 的
买卖股票最佳时机——动态规划
动态规划: a[i] 表示第(i+1)次买入,b[i] 表示第(i+1)次卖出 当前状态可以由两种状态转化而来,一种是继承前一天的自己,一种是由前一天的买入卖出状态相互转换 不需要考虑当天是否可以多次
地下城游戏——动态规划
动态规划: 正向完善 dp 会发现之后的情况会影响之前的情况,所以我们从终点出发,逆向推到动态转移 构造 dp[i][j] 表示到当前格到终点所需要的最小健康点数 方便写代码,我们多开了一行一列 我们
分割回文串——动态规划
代码:动态规划 第一次动态规划,进行预处理问题,得到 dp 数组,dp[i][j] 表示 s[i:j+1] 字符串是否是回文串 第二次动态规划,f[i] 表示 s[0:i+1] 需要分割多少次 f 数
分割回文串——回溯+动态规划预处理
代码1:回溯+动态规划 f[i][j] 表示下标 i 到 下标 j 的字符串是否是回文串 2. dfs 函数递归实现分割字符串 3. 因为步骤一的动态规划预处理使得在 dfs 中哦 O(1)的得出是否
二叉树的最大路径和——递归
递归代码: recur 函数返回当前节点的最大贡献值, 即路径走左还是走右, 当然如果左右贡献为负, 那自然不再往下走了, 从而得到最大路径和 由此可以看出如果我们想要得到最大贡献值需要从底往上求,那
买卖股票的最佳时机——动态规划
代码动态规划: 某一天中,你会处于 5 种状态, 一:什么也没干 二:一次买入 三:一次买入卖出 四:再次买入 五:再次卖出 第一种状态永远是 0 ,自然可以不考虑 每种状态都可以继承昨天的自己或者由
不同的子序列——动态规划
动态规划代码: dp[i][j] 表示 s[:i] 子序列中 t[:j] 出现了几次 当前字符不同,那么状态转移 dp[i][j] = dp[i-1][j] 相同则 dp[i][j] = dp[i-1
不同的二叉搜索树——动态规划
动态规划代码: 注释代码超时了 新代码用for循环模拟递归,来完成动态规划,由小问题到大问题,动态规划
不同的二叉搜索树——回溯
代码回溯: 遍历根节点,问题被分解成求其左子树,以及右子树 大问题分解为了小问题 然后重复操作,进行递归分解就可以了 当然因为得到子问题的是数组,所以for循环读取一下 因为二叉搜索树的左小于根小于右
下一页