![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
FrenchOldDriver
这个作者很懒,什么都没留下…
展开
-
【算法笔记】记一道力扣周赛:知道秘密的人
题目链接:https://leetcode.cn/problems/number-of-people-aware-of-a-secret/三个输入,n,delay,forget,从第一天开始有1个人知道秘密,delay天之后他会每天告诉一个人秘密,直到forget天,之后他就忘掉了秘密不会再告诉别人了,然后其他人会继续告诉秘密。求第n天知道秘密的总人数。这道题很明显的dp问题。有个最直观的想法是,今天新人数i,在delay到forget时间段会每天+i个知道秘密的人。也就是某一天新增的人数,只会影响之后的某原创 2022-07-05 11:25:45 · 224 阅读 · 0 评论 -
Leetcode25: k个一组反转链表
Leetcode 25 k个一组反转链表基本思路是先实现k个反转,再把最后不足k却被反转的那一段的头节点记录下来,最后单独从这个被记录的地方再反转一次。具体反转的方式有很多种,不懂的话建议先学会如何反转整个链表。start -> p -> q -> r -> *start -> p <- q, r -> *start -> * <- p ,q-> r (count+1)start -> * <- * <-p, q -&g原创 2021-06-30 15:13:50 · 151 阅读 · 0 评论 -
算法基础:给定一个数字,从1开始,每次只能加一或者翻倍,求最短步数
问题描述如下,给定任意一个正整数,只允许两种操作,+1或者x2,问从1到这个数字最短需要多少步。这个题其实和leetcode爬楼梯是一个道理,也是有递归和非递归写法的递归求解:首先看一下递归公式,达到某个数字n的步数,等于一步之远的数字的步数+1,这个一步之远可以是加一操作的,也可以是翻倍操作的,即T(n−1)T(n-1)T(n−1)或者T(n/2)T(n/2)T(n/2) 所以状态公式就...原创 2020-04-15 11:01:59 · 5374 阅读 · 0 评论 -
二叉树的前序,中序,后序遍历(递归/非递归实现),层次遍历
算法必会基本内容1,递归实现感觉一句话可以概括了。。先看前序遍历:public void bianli(TreeNode root){ if(root==null)return; System.out.println(root.val); //牛客上要求是存在List中,这里就换成一个链表就好了 bianli(root.left); bianli(root.right);}中序...原创 2019-08-09 22:13:13 · 349 阅读 · 0 评论