跳至主要內容
59, 螺旋矩阵II

一、题目描述

给你一个正整数n,生成一个包含1到n²所有元素,且元素按顺时针顺序螺旋排列的n x n正方形矩阵matrix。

示例 1

输入: n = 3
输出: [[1, 2, 3], [8, 9, 4], [7, 6, 5]]

示例 2
输入: n = 1
输出: [[1]]

提示

  • 1 <= n <= 20

Mike大约 2 分钟arraymediumarraymatrixsimulation
54, 螺旋矩阵

一、题目描述

给你一个m行n列的矩阵matrix,请按照顺时针螺旋顺序返回矩阵中的所有元素。

示例 1

输入: matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
输出: [1, 2, 3, 6, 9, 8, 7, 4, 5]

示例 2

输入: matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
输出: [1, 2, 3, 4, 8, 12, 11, 10, 9, 5, 6, 7]


Mike大约 2 分钟arraymediumarraymatrixsimulation
76, 最小覆盖子串

一、题目描述

给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串 ""。

注意:

  • 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。
  • 如果 s 中存在这样的子串,我们保证它是唯一的答案。

示例 1
输入: s = "ADOBECODEBANC", t = "ABC"
输出: "BANC"
解释: 最小覆盖子串 "BANC" 包含来自字符串 t 的 'A'、'B' 和 'C'。


Mike大约 2 分钟arrayhardhash tablestringsliding window
904, 水果成篮

一、题目描述

你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组fruits表示,其中fruits[i]是第i棵树上的水果种类。

你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果:

  • 你只有两个篮子,并且每个篮子只能装单一类型的水果。每个篮子能够装的水果总量没有限制。
  • 你可以选择任意一棵树开始采摘,你必须从每棵树(包括开始采摘的树)上恰好摘一个水果 。采摘的水果应当符合篮子中的水果类型。每采摘一次,你将会向右移动到下一棵树,并继续采摘。
  • 一旦你走到某棵树前,但水果不符合篮子的水果类型,那么就必须停止采摘。

Mike大约 2 分钟arraymediumarrayhash tablesliding window
209, 长度最小的子数组

一、题目描述

给定一个含有 n 个正整数的数组和一个正整数 target。找出该数组中满足其总和大于等于 target 且长度最小的连续子数组 [nums[l], nums[l+1], ..., nums[r-1], nums[r]],并返回其长度。如果不存在符合条件的子数组,则返回 0。

示例 1:
输入: target = 7, nums = [2,3,1,2,4,3]
输出: 2
解释: 子数组[4,3]是该条件下的长度最小的子数组。

示例 2:
输入: target = 4, nums = [1,4,4]
输出: 1


Mike大约 2 分钟arraymediumarraybinary searchsliding windowprefix sum
27, 移除元素

一、题目描述

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。

不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。

示例 1:
输入: nums = [3,2,2,3], val = 3
输出: 2, nums = [2,2,_,_]
解释: 函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。


Mike大约 2 分钟arrayeasyarraytwo pointers
704, 二分查找

一、题目描述

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

你所使用的算法,其时间复杂度必须为O(log n)。

示例 1:
输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:
输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1


Mike大约 2 分钟arrayeasyarraybinary search
977, 有序数组的平方

一、题目描述

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

示例 1:
输入: nums = [-4,-1,0,3,10]
输出: [0,1,9,16,100]
解释: 平方后,数组变为 [16,1,0,9,100];排序后,数组变为 [0,1,9,16,100]

示例 2:
输入: nums = [-7,-3,2,3,11]
输出: [4,9,9,49,121]


Mike大约 2 分钟arrayeasyarraytwo pointerssorting
844, 比较含退格的字符串

一、题目描述

给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。

注意:如果对空文本输入退格字符,文本继续为空。

示例 1:
输入: s = "ab#c", t = "ad#c"
输出: true
解释: s 和 t 都会变成 "ac"。

示例 2:
输入: s = "ab##", t = "c#d#"
输出: true
解释: s 和 t 都会变成 ""。


Mike大约 2 分钟arrayeasyarraytwo pointersstackstring
283, 移动零

一、题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

示例 1:
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]

示例 2:
输入: nums = [0]
输出: [0]

提示:

  • 1 <= nums.length <= 10⁴
  • -2³¹ <= nums[i] <= 2³¹ - 1

Mike大约 1 分钟arrayeasyarraytwo pointers
2