LeetCode
文章平均质量分 55
炸毛疯兔
这个作者很懒,什么都没留下…
展开
-
最近公共祖先结点问题(附力扣题解)
力扣中遇见的最近公共祖先结点问题原创 2021-12-11 17:00:08 · 1086 阅读 · 0 评论 -
C++ rand()用法 以及洗牌算法应用
1.rand()函数存在于<stdlib.h>头文件中2.是一个无参内置函数 作用是随机产生0 - (N-1)之间的数3.例如 我们要随机一个在 0 - 9 的随机数 int num = rand() %10 ;(左开右闭)难道随机的只能是从 0 开始的么(是,但是我们可以在随机产生的数后面加上一个数就可以按照我们的想法来取区间)例如我们需要从 5 - 13 的随机数 我们可以产生一个从 0 - 8 的随机区间 然后在这个随机区间后面加上 5 就是 5 - 13 的了 --...原创 2021-11-22 21:27:48 · 731 阅读 · 0 评论 -
小白专享版单调栈(附图解和多道力扣题解)
IntroductionMonotonic Stack is a special variation of the typical data structureStackand appeared in many interview questions.As its name shows, monotonic stack contains all features that a normal stack has and its elements are all monotonic decreasi..原创 2021-11-20 21:48:58 · 3529 阅读 · 0 评论 -
LeetCode42(动态规划以及单调栈)
42. 接雨水难度困难2783给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n == h...原创 2021-10-26 15:52:25 · 100 阅读 · 0 评论 -
力扣802(反向拓扑排序)
802. 找到最终的安全状态难度中等276在有向图中,以某个节点为起始节点,从该点出发,每一步沿着图中的一条有向边行走。如果到达的节点是终点(即它没有连出的有向边),则停止。对于一个起始节点,如果从该节点出发,无论每一步选择沿哪条有向边行走,最后必然在有限步内到达终点,则将该起始节点称作是安全的。返回一个由图中所有安全的起始节点组成的数组作为答案。答案数组中的元素应当按升序排列。该有向图有n个节点,按0到n - 1编号,其中n是graph的节点数。图以下述形式...原创 2021-10-24 20:07:35 · 182 阅读 · 0 评论 -
字典树模板
随着数据的不断插入,根据需要不断创建TrieNodeTrieNode节点。对于每一个结点都存放下一个字符所在的地址 因此我们就可以实现对于一个字符串是否在这个树内的快速查询。Trie() 初始化前缀树对象。void insert(String word) 向前缀树中插入字符串 word 。boolean search(String word) 如果字符串 word 在前缀树中,返回 true(即,在检索之前已经插入);否则,返回 false 。boolean startsWith(Stri..原创 2021-10-19 17:25:02 · 106 阅读 · 0 评论 -
力扣207(拓扑排序)
本题主要是判断是否是有向无环图你这个学期必须选修 numCourses 门课程,记为0到numCourses - 1 。在选修某些课程之前需要一些先修课程。 先修课程按数组prerequisites 给出,其中prerequisites[i] = [ai, bi] ,表示如果要学习课程ai 则 必须 先学习课程bi 。例如,先修课程对[0, 1] 表示:想要学习课程 0 ,你需要先完成课程 1 。请你判断是否可能完成所有课程的学习?如果可以,返回 true ;否则,返回 fa...原创 2021-10-14 21:16:22 · 84 阅读 · 0 评论 -
LeetCode229(摩尔投票法)
摩尔排序应用于唱票选代表条件 :选最多m个人且他的票数必须是超过总数的m+1分之一的票数时间复杂度:线性 空间复杂度:常数级例:选2个人(票数大于1/3)正确性:相互抵消票数 遇到3个不同的票数才相互抵消 因此至多抵消(n/3)次而候选人的票数必须大于n/3 因此剩下的肯定是候选人实现:两个候选人设为peo1=nums[0] peo2=nums[0]count1=count2=0从头开始遍历vector(记住每次都是三个不同的人互相抵消)1:如果当前的是peo1 ...原创 2021-10-11 21:11:30 · 240 阅读 · 0 评论 -
C++双栈实现队列
//A栈用来添加新的元素 B栈用来出队//因为队列FIFO 栈FILO 因此将A中的翻转后存放到B中 //B栈(反转后出栈和出队要求相同)用来模拟出队Stack<int>A,B; void appendTail(int value) //入队 { A.push(value); //入队在A栈中实现 } int deleteHead() { //出队,返回队首元素 //1:如果B栈是不为空的,那么栈顶元素就相当于队首...原创 2021-10-09 11:46:24 · 195 阅读 · 0 评论