
LeetCode
文章平均质量分 64
coffee_mao
不忘初心 ,善始善终
展开
-
期末复习-大数据技术原理与应用
NoSQL,泛指非关系型的数据库。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。特点,灵活可扩展,灵活的数据模型,与云计算紧密相连兴起的原因,海量数据的需求,数据高并发的需求,无法满足可扩展和高可用性的需求。原创 2022-12-09 21:12:23 · 3974 阅读 · 0 评论 -
LeetCode-895. 最大频率栈以及HashMap的存值取值操作
设计一个类似堆栈的数据结构,将元素推入堆栈,并从堆栈中弹出出现频率最高的元素。如果出现频率最高的元素不只一个,则移除并返回最接近栈顶的元素。第二步,计算索引,通过上面的哈希函数,计算键值对在数组中的索引。首次扩容,判断数组是否为空,如果数组为空,则进行第一次扩容。,链表就转化为红黑树,并且将数据插入到树中。和其对应出现频次的哈希表,在建立一个频次。第四步,再次扩容,如果数组元素的个数大于。使用栈对出现的频次的元素保存的哈希表。接口,可以克隆复制的接口,序列化接口。第三步,插入元素,如果当前位置元素为。原创 2022-11-30 16:44:05 · 408 阅读 · 0 评论 -
LeetCode-130. 被围绕的区域-广度优先和深度优先
从边界开始遍历递归遍历数组进行标记,这里在标记左右和上下两组边的时候,去掉重叠的部分,初始化了方向数组,遍历一次对应上下左右的直接相邻。,数组标记完毕之后,遍历数组,被标记的就是。围绕的区域,并将这些区域里所有的。,这样标记结束之后,数组就剩下标记的。的连通分量就是入队,将该位置标记为。就是未被包围的字符,将其更新为。最后将标记的位置的元素还原即可。不会被包围,也就是边界上的。访问四边的边界开始,边界的。的联通元素的索引,队列具有。就是被包围的,将其更新为。,没有被X包围的字符。和直接或者间接相连的。原创 2022-11-29 20:40:50 · 373 阅读 · 0 评论 -
LeetCode-图的建立和迪杰斯特拉算法以及数组的分组和排序轮转
times[i] = (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信号从源节点传递到目标节点的时间。数组,距离小于指定的最大长度就是图中符合要求的可达节点,再遍历每一条边,统计边上可达的路径长度,即是小于等于最大的移动距离。节点最近的节点加入,就是在未访问的节点中查找最短路径长度,更新抵达节点的距离数组,将。出发,到达其他节点的最短路径的最大值,如果存在不可达的节点,直接返回。最开始的数组是一个非递减的数组,轮转之后能否得到题目给定的数组的顺序。原创 2022-11-28 11:34:50 · 825 阅读 · 0 评论 -
LeetCode-剑指 Offer 46. 把数字翻译成字符串
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,。,25 翻译成 “z”。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。,遍历到这个数字字符串的每一位,要求当前位之前数字的最大翻译方式,就可以使用动态规划的思路进行解决,由于翻译过来,最多是。使用动态规划的数组,空间复杂度线性阶,依赖于数字的长度。,当前位置的翻译次数最少是上一次的翻译次数。使用变量代替动态规划数组,空间复杂度常数阶。的数字,有且最多只有一种翻译,一旦大于。原创 2022-11-23 09:37:53 · 180 阅读 · 0 评论 -
LeetCode_946. 验证栈序列
模拟一个栈,pushed中的元素依次入栈,栈顶元素和poped的相同时,弹出栈的头部元素,poped后移,pushed元素再继续入栈。一个接口使用关键字extends来继承自其他接口。继承的接口称为超级接口,继承接口的接口称为子接口。如果超级接口和子接口具有相同名称的字段和嵌套类型,则子接口获胜。接口继承接口,最终继承的是迭代接口,这是一种设计模式。接口可以重写它从其超级接口继承的继承的抽象和默认方法。类继承了抽象集合,实现了双端队列接口,源码如下,接口不从其超级接口继承静态方法。...原创 2022-08-31 09:37:14 · 100 阅读 · 0 评论 -
LeetCode_剑指 Offer 49. 丑数
优先级队列的元素根据它们的有序natural ordering ,或由一个Comparator在队列构造的时候提供,这取决于所使用的构造方法。优先级队列是无限制的,但是具有管理用于在队列上存储元素的数组的大小的内部容量。每次取出堆顶元素 x,则 x 是堆中最小的丑数,由于 2x, 3x, 5x 也是丑数,因此将 2x, 3x, 5x加入堆。方法一使用最小堆,会预先存储较多的丑数,维护最小堆的过程也导致时间复杂度较高。在排除重复元素的情况下,第 n 次从最小堆中取出的元素即为第 n 个丑数。原创 2022-09-01 23:21:05 · 99 阅读 · 0 评论 -
LeetCode_专项突破之SQL入门
编写一个 SQL 查询,该查询可以获取在 2020 年登录过的所有用户的本年度 最后一次 登录时间。结果集 不 包含 2020 年没有登录过的用户。返回的结果集可以按 任意顺序 排列。注意year 函数返回当年年份,where > group by > order by。原创 2022-09-11 20:28:22 · 840 阅读 · 0 评论 -
LeetCode_剑指 Offer 24. 反转链表
思路一、新建一个头结点,在这个头结点之后进行头插法进行插入遍历到的节点,实现链表的逆转。思路三、递归法,递归栈,实现两个链表的逆转,原来的指针要置空,否则会出现环状链表。定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。思路二、迭代法,定义临时节点变量,直接逆转。...原创 2022-09-01 15:15:25 · 263 阅读 · 0 评论 -
LeetCode 3. 无重复字符的最长子串
对于给定的字符串,需要遍历字符串中的每个字符,设置变量记录无重复的左部索引,遇到重复的字符,将左部更新为重复字符的下一位索引。,会下拉一个链表在链表的长度大于 7 或者 8 时候(原因在检查时候,可能会存在一次数组的扩容)查询效率低下,会转化成为红黑树,在红黑树的长度小于 6 的时候,会退化成为链表。上面的是HashMap的get方法,HashMap可以直接通过hash计算得到的键来获取对象,而HashSet, 直接用HashMap的containKeys方法。...原创 2022-08-29 22:27:16 · 396 阅读 · 0 评论 -
LRU最近最少使用的缓存
实现思路,在LRU缓存类中维护一个Node的内部类,和一个缓存Map,实现每一个value就是一个Entry,entry之间是双向链表的关系,在链表之间加入head,和tail的entry节点,所有的数据节点都是在这两个之间进行的插入和查询。通过传入的指定的一个key,获取到对应的节点Entry,如何获取到的节点为null的话就是没有此节点,返回-1即可。的方法就比较麻烦了,通过key获取到节点node,此节点不为空,就说明缓存中具有此节点,更新此节点的value,将此节点移动到头部,返回即可。原创 2022-10-10 21:39:19 · 512 阅读 · 0 评论 -
LeetCode_剑指 Offer 63. 股票的最大利润
假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?记录历史最低点,在最低价买进,在最高价卖出,按照星期的顺序,一定是先买在卖。暴力求解,定义最大利润的结果变量,每次比较最大利润。简化,都是求解最大值,最小值。原创 2022-09-07 11:15:42 · 161 阅读 · 0 评论 -
树递归遍历和Mirrors遍历
给你二叉树的根节点 root ,返回它节点值的 前序 遍历前序遍历就是按照的顺序完成遍历,他的每一颗子树都遵循这个遍历的顺序,就称为前序遍历。原创 2022-11-01 22:15:10 · 399 阅读 · 0 评论 -
LeetCode_414. 第三大的数
遍历数组,并用三个变量 aa、bb 和 cc 来维护数组中的最大值、次大值和第三大值。中存储的元素会自动排序(自增),依旧用到了接口继承的设计模式。接口,这个接口又继承了有序的Set集合接口,所以。如果不存在,则返回数组中最大的数。给你一个非空数组,返回此数组中。i++:i 先赋值在自增。++i:i 先自增再赋值。源码TreeSet实现。在增加元素时就排序了。...原创 2022-09-01 15:32:56 · 191 阅读 · 0 评论 -
Leecode206链表逆序
链表逆序链表逆序问题描述一、C1、直接逆序2、头插法逆序3、打印函数4、主函数5、运行结果二、java1、直接逆序2、头插法逆序3、打印函数4、主函数5、运行结果三、Python1、代码2、运行结果链表逆序问题描述给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。解题思路:直接逆转链表 :将设置两个变量,next保存当前的下一个节点,和一个中转的节点prev第一步:将当前节点的下一个节点保存在next变量中;第二步:将当前节点的下一个指向prev;第三步:将head赋给prev,原创 2021-09-28 23:14:33 · 495 阅读 · 0 评论 -
LeetCode:1106. 解析布尔表达式
如果当前字符是除了逗号和右括号以外的任意字符,则将该字符添加到栈内;分析题目可以知道,需要使用栈这个数据结构存储。如果当前字符是逗号,则跳过该字符;最后栈中剩余的字符即是结构。这个字符串中的字符。原创 2022-11-05 14:54:43 · 467 阅读 · 0 评论