offer加加加加加加一
offer加加加加加加一
全部文章
分类
题解(4)
归档
标签
去牛客网
登录
/
注册
offer加加加加加加一的博客
全部文章
(共4篇)
拆分词句II【C++】【动态规划】【回溯】
由于dict中可能存在多个前缀相同的单词,也就使得s可能有多种拆分方案,比如例题中的“nowcoderis”可以被拆分为"now coder is"和“now coderis"。如何才能计算出所有方案? 很直观的想法就是记录下每个分割点的位置,最后利用这些分割点的信息还原成一个语句即可。例如,“no...
C++
动态规划
回溯
2020-09-28
3
664
链表的插入排序【C++】
把链表分为两部分,一部分是已经排序的链表,另一部分是还未排序的链表。每次把未排序的链表的头节点插入到已排序链表中,直到未排序链表为空为止。时间复杂度O(n^2),空间复杂度O(1)。 ListNode* insertionSortList(ListNode* head) { if (head...
C++
2020-09-27
0
806
二叉树的最小深度【C++】【后序遍历】
后序遍历树,这样在回到每个节点时,其节点左右子树的最小深度都已经计算完毕,当前节点的最小深度就等于左右子树中较小深度加一。递归边界:如果节点是空节点,最小深度返回INT_MAX,如果节点是叶节点,最小深度为1。时间复杂度O(N),空间复杂度O(N)。 int minDepth(TreeNode* r...
后序遍历
递归
C++
2020-09-27
1
973
分糖果(C++动态规划)
令dp[i]表示第i个小朋友得到的糖果,初始化dp[i] = 1如果ratings[i]>ratings[i-1],dp[i] = max(dp[i], dp[i-1]+1);如果ratings[i]>ratings[i+1],dp[i] = max(dp[i], dp[i+1]+1);...
C++
动态规划
2020-09-27
6
1688