分类
LeetCode刷题

LeetCode 第844题 Backspace String Compare

原题地址:https://leetcode.com/problems/backspace-string-compare/

题目:比较含退格符的字符串

给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

分类
LeetCode刷题

LeetCode 第341题 Flatten Nested List Iterator

原题地址:https://leetcode.com/problems/flatten-nested-list-iterator/

题目:扁平化嵌套列表的迭代器

给定一个嵌套的整型列表。设计一个迭代器,使其能够遍历这个整型列表中的所有整数。

列表中的项或者为一个整数,或者是另一个列表。

分类
LeetCode刷题

LeetCode 第232题 Implement Queue using Stacks

原题地址:https://leetcode.com/problems/implement-queue-using-stacks/

题目:用栈实现队列

使用栈实现队列的下列操作:

  • push(x) — 将一个元素放入队列的尾部。
  • pop() — 从队列首部移除元素。
  • peek() — 返回队列首部的元素。
  • empty() — 返回队列是否为空。
分类
LeetCode刷题

LeetCode 第225题 Implement Stack using Queues【堆栈】Java

原题地址:https://leetcode.com/problems/implement-stack-using-queues/

题目:用队列实现一个堆栈

使用队列实现栈的下列操作:

  • push(x) — 元素 x 入栈
  • pop() — 移除栈顶元素
  • top() — 获取栈顶元素
  • empty() — 返回栈是否为空
分类
LeetCode刷题

LeetCode 第155题 Min Stack【堆栈】Java

原题地址:https://leetcode.com/problems/min-stack/

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。

push(x) — 将元素 x 推入栈中。
pop() — 删除栈顶的元素。
top() — 获取栈顶元素。
getMin() — 检索栈中的最小元素。

分类
LeetCode刷题

LeetCode 第71题 Simplify Path【堆栈】Java

原题地址:https://leetcode.com/problems/simplify-path

以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。

在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径

请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须只有一个斜杠 /。最后一个目录名(如果存在)不能以 / 结尾。此外,规范路径必须是表示绝对路径的最短字符串。

分类
LeetCode刷题

LeetCode 第20题 Valid Parentheses 【堆栈】Java

原题地址:https://leetcode.com/problems/valid-parentheses/

题目:验证括号

给定一个字符串,仅包含'('')''{''}''[',']'等字符,检验括号匹配是否合法。

合法的条件是:

  • 一个括号必须被同类型的括号结束。
  • 括号结束的顺序必须正确。

注意,空字符串可以视为合法。

分类
LeetCode刷题

LeetCode专题 堆栈和队列

堆栈和队列都是动态数据结构,支持删除操作。在堆栈里,删除的是最新加入的元素,最后加入的,先出去,所以叫做后进先出原则(LIFO, last in, first out)。叫做堆栈的原因就是,堆栈数据机构就像是堆叠的文件,或者一堆货品,你不把上面的,也就是后放进去的东西挪走,你就没办法去挪走下面的,也就是先放进来的东西。堆栈在显示生活中很常见,你桌子堆的一堆文件,就像是一个堆栈。

而队列的删除原则是先删除最早加入的元素,先加入的,先出去,所以叫做先进先出原则(FIFO, first in, first out)。现实生活中的种种排队其实就是队列,先到先得。

分类
LeetCode刷题

LeetCode 第1122题 Relative Sort Array【排序】java

原题地址:https://leetcode.com/problems/relative-sort-array/

题目:数组相对排序

给定两个数组arr1和arr2,其中arr2的元素是没有重复的,而且在arr2的元素也都存在于arr1里。

排序arr1,使那些跟arr2一样的元素的排序方式于arr2统一,那些仅出现在arr1的元素,则以升序排列在arr1尾部。

例一

输入: arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]
输出: [2,2,2,1,4,3,3,9,6,7,19]
分类
LeetCode刷题

LeetCode 第973题 K Closest Points to Origin【排序】java

原题地址:https://leetcode.com/problems/k-closest-points-to-origin/

题目:离原点最近的K个点

有一个平面上一堆点的列表。找到离原点(0,0)最近的K个点。距离用欧几里得距离计算。顺序无所谓。

例一

输入: points = [[1,3],[-2,2]], K = 1
输出: [[-2,2]]
解释: 
(1, 3)和原点的距离是sqrt(10)。
(-2, 2)和原点的距离是sqrt(8)。
因为sqrt(8) < sqrt(10),所以(-2, 2)最接近原点。

例二

输入: points = [[3,3],[5,-1],[-2,4]], K = 2
输出: [[3,3],[-2,4]]