首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
每日算法
linyv
创建于2022-11-29
订阅专栏
发现问题--->思考问题--->解决问题--->提升自我
暂无订阅
共126篇文章
创建于2022-11-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
解码方法——动态规划
动态规划代码1: dp[i] 表示前 i 个字符的方法总数 状态转移:如果把当前字符单独来看,则f[i] = f[i-1] 如果和前面的字符当成整体来看则 f[i] = f[i-2] 所以当前状态就等
跳跃游戏——贪心
贪心代码1: 反向查找出发位置 遍历数组,找到第一个可以跳到目标位置的下标 因为我们要找最小下标,所以遍历查找的时候是正向遍历,而目标位置我们是从最终位置开始的, 也就是目标反向遍历,查找正向查找 贪
正则表达式匹配——动态规划
代码动态规划: dp[i][j] 表示 s 的前 i 个字符与 p 的前 j 个字符是否匹配 当前字符匹配或当前字符为 点 则状态转移:dp[i][j] = dp[i-1][j-1] 当前若为星号,则
通配符匹配——动态规划
代码动态规划: dp[i][j] 数组用来表示 s 的前 i 个字符,和 p 的前 j 个字符是否匹配 状态转移方程:如果 p 当前字符为字母且与 s 的当前字母相等,则状态转移 dp[i][j] =
最长有效括号——算法
动态规划代码1: dp[i] 表示以下标 i 字符结尾的最长有效括号 如果 s[i] 是 '(' 结尾则对应的dp一定是 0 ,这种情况不考虑 当 s[i] == ')' , 则需要判断 s[i-1]
礼物的最大价值——动态规划
代码: 当前格的礼物最大价值等于 上一格的最大价值加上本格价值或前一格的最大价值加上本格 由此得到状态转移方程 如题可以原地dp
树的子结构——递归
代码: equal函数来dfs判断两个树是否一样 isSubStructure函数来dfs方式向equal中传数据,
岛屿的周长——模拟遍历 || DFS
迭代模拟 type一个pair类型,x,y 新建一个pair类型的数组,表示四个方向,上移,下移,左移,右移 遍历grid,当值为1时,判断其四个方向是否满足边界或值为0,满足则ans++ 判断四个方
左叶子之和——DFS , BFS
DFS: 加入答案的前提是,当前节点属于左节点且是叶子节点,所以我们要从它的父节点处判断,当前节点是否是左节点 首先当前节点的左节点不为nil,然后判断其左节点是否是叶子节点,是则加入答案,不是则进入
填充每个节点的下一个右侧节点——DFS , BFS
BFS: 层序遍历,左指向右即可,注意最后一个指向nil DFS: 常数级空间解决问题 没有使用队列模拟bfs
二叉树的最小深度——DFS, BFS
代码1——dfs: dfs递归 退出条件root == nil, 或其左右节点皆为nil 如果左节点不为nil, 则返回左节点的深度,右节点不为nil,则返回右节点的深度 如果都不为nil,则返回较小
二叉树的最大深度——DFS, BFS
代码1——dfs: 直接递归 dfs 就好了,返回其左右节点中比较深的深度加1,即可 bfs: 层序遍历,返回深度就好了,层序遍历时,注意队列的变化即可
相同的数——DFS, BFS
代码1——dfs: 都为nil,则为true 一个为nil,false 值不等为false 值相等判断字节的,不能直接返回true 代码2——bfs: 用两个队列来维护两个bfs,每次取出第一个进行比
第一个只出现一次的字符
代码1: 代码3中,为了保证顺序,单独一个数组保证顺序,一个map保证频数,其实不需要,只需要保存频数,然后再遍历一遍s,即可 代码2中,第二次遍历,用到了i,因为range的ch不是byte,所以要
包含min函数的栈
代码: 建一个辅助栈min stk入栈的时候,将入栈元素与min的栈顶元素做比较,min的栈顶元素即当前所有元素中的最小元素,如果入栈元素更小,则此元素入栈min,否则入栈min的栈顶元素, 弹栈时,
用两个栈实现队列
代码: in按顺序进栈 out接受in按顺序弹栈的值 这时候,out中的值,按顺序弹栈就是,in进栈时的顺序 所以模拟队列时,如果out不为0,直接弹栈out就行 如果为0,则将in中的数据弹栈到ou
四数之和——排序+双指针
代码: 第一层for,遍历a,遍历的时候去重,以及如果最小值都比target大,则直接退出,如果最大值都比target小,则直接continue进行下一层循环 第二层for,遍历b,步骤于1相同 su
最接近的三数之和——排序+双指针
代码: abs 求绝对值的函数 update 根据绝对值更新答案 排序之后,枚举a,双指针b,c 这样将时间复杂度由直接暴力的N三次方,变为了N平方
丑数——动态规划
代码: 丑数 * 2 ———— 丑数 * 3 ———— 丑数 * 5 依旧是丑数,且这样运算也包含所有丑数 但为了避免丑数重复,所以在记录最小之后,如果其他运算得到的答案一样,则将其他的 dp 下标也
快乐数
代码1: step函数对数进行处理,(n%10)得到个位数,(n/10)将当前个位数剔除,直到得到每一位数,即(n>0),返回sum for循环,直到(n==1)或出现循环, 退出for后,判断是因为
下一页