分类
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]]
分类
LeetCode刷题

LeetCode 第922题 Sort Array By Parity II【排序】java

原题地址:https://leetcode.com/problems/sort-array-by-parity-ii/

题目:根据奇偶性排序

给定一个数组,包含非0整数,一半是奇数,一半是偶数。排序数组令序号为奇数的时候,值也为奇数。序号为偶数的时候,值也为偶数。

例一

输入: [4,2,5,7]
输出: [4,5,2,7]
解释: [4,7,2,5], [2,5,4,7], [2,7,4,5] 都可以接受。
分类
LeetCode刷题

LeetCode 第350题 Intersection of Two Arrays II 【排序】java

原题地址:https://leetcode.com/problems/intersection-of-two-arrays-ii/

题目:两个数组的交集II

给定两个数组,写个函数计算他们的交集(跟349题的区别在于,349只需要不重复的数字,这题要求有多少重复的数字就输出多少数字)。

例一

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2,2]

例二

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [4,9]
分类
LeetCode刷题

LeetCode 第349题 Intersection of Two Arrays【排序】java

原题地址:https://leetcode.com/problems/intersection-of-two-arrays/

题目:两个数组的交集

给定两个数组,写一个函数计算他们的交集。

例一

输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]

例二

输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
分类
LeetCode刷题

LeetCode 第242题 Valid Anagram【排序】java

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

题目:验证变位词

给定两个字符串,写个函数判断他们是否互为变位词(字母一样,顺序不同)。

例一

输入: s = "anagram", t = "nagaram"
输出: true

例二

输入: s = "rat", t = "car"
输出: false
分类
LeetCode刷题

LeetCode 第179题 Largest Number【排序】java

原题地址:https://leetcode.com/problems/largest-number/

题目:最大的数字

给定一组非0整数,排列成可以得到的最大的数字。

例一

输入: [10,2]
输出: "210"

例二

输入: [3,30,34,5,9]
输出: "9534330"
分类
LeetCode刷题

LeetCode 第164题 Maximum Gap【排序】java

原题地址:https://leetcode.com/problems/maximum-gap/

题目:最大间隔

给定一个未排序的数组,找到连续两个数字之间最大的差异。如果数组小于2个元素返回0。

例一

输入: [3,6,9,1]
输出: 3
解释: 排序后的数组是[1,3,6,9], 
             (3,6) 或者 (6,9)都是最大的差异3。

例二

输入: [10]
输出: 0
解释: 数组不足2个元素,返回0。