跳至主要內容
740, 删除并获得点数

一、题目描述

给你一个整数数组nums,你可以对它进行一些操作。

每次操作中,选择任意一个nums[i],删除它并获得nums[i]的点数。之后,你必须删除所有等于nums[i] - 1nums[i] + 1的元素。

开始你拥有0个点数。返回你能通过这些操作获得的最大点数。

示例 1
输入: nums = [3, 4, 2]
输出: 6
解释:
删除4获得4个点数,因此3也被删除。
之后,删除2获得2个点数。总共获得6个点数。


Mike大约 3 分钟dynamic programmingmediumarrayhash tabledynamic programming
763, 划分字母区间

一、题目描述

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。

注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。

返回一个表示每个字符串片段的长度的列表。

示例 1
输入: s = "ababcbacadefegdehijhklij"
输出: [9, 7, 8]
解释:
划分结果为"ababcbaca""defegde""hijhklij"
每个字母最多出现在一个片段中。
"ababcbacadefegde", "hijhklij"这样的划分是错误的,因为划分的片段数较少。


Mike大约 1 分钟greedymediumgreedytwo pointershash tablestring
491, 递增子序列

一、题目描述

给你一个整数数组nums,找出并返回所有该数组中不同的递增子序列,递增子序列中至少有两个元素。你可以按任意顺序返回答案。

数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。

示例 1
输入: nums = [4, 6, 7, 7]
输出: [[4, 6], [4, 6, 7], [4, 6, 7, 7], [4, 7], [4, 7, 7], [6, 7], [6, 7, 7], [7, 7]]


Mike大约 1 分钟backtrackingmediumarrayhash tablebit manipulationbacktracking
37, 解数独

一、题目描述

编写一个程序,通过填充空格来解决数独问题。

数独的解法需遵循如下规则

  1. 数字1-9在每一行只能出现一次。
  2. 数字1-9在每一列只能出现一次。
  3. 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图)

数独部分空格内已填入了数字,空白格用'.'表示。

示例 1

输入: board =


Mike大约 4 分钟backtrackinghardarrayhash tablematrixbacktracking
36, 有效的数独

一、题目描述

请你判断一个9 x 9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。

  1. 数字1-9在每一行只能出现一次。
  2. 数字1-9在每一列只能出现一次。
  3. 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图)

注意

  • 一个有效的数独(部分已被填充)不一定是可解的。
  • 只需要根据以上规则,验证已经填入的数字是否有效即可。
  • 空白格用'.'表示。

Mike大约 3 分钟backtrackingmediumarrayhash tablematrix
17, 电话号码的字母组合

一、题目描述

给定一个仅包含数字2-9的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。

给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。

示例 1
输入: digits = "23"
输出: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]


Mike大约 1 分钟Backtrackingmediumhash tablestringbacktracking
106, 从中序与后序遍历序列构造二叉树

一、题目描述

给定两个整数数组inorderpostorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树

示例 1

输入: inorder = [9, 3, 15, 20, 7], postorder = [9, 15, 7, 20, 3]
输出: [3, 9, 20, null, null, 15, 7]


Mike大约 3 分钟binary treemediumarrayhash tabledivide and conquerbinary tree
105, 从中序与先序遍历序列构造二叉树

一、题目描述

给定两个整数数组preorderinorder,其中preorder是二叉树的先序遍历inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。

示例 1

输入: preorder = [3, 9, 20, 15, 7], inorder = [9, 3, 15, 20, 7]
输出: [3, 9, 20, null, null, 15, 7]


Mike大约 3 分钟binary treemediumarrayhash tabledivide and conquerbinary tree
347, 前K个高频元素

一、题目描述

给你一个整数数组nums和一个整数k,请你返回其中出现频率前k高的元素。你可以按任意顺序返回答案。

示例 1
输入: nums = [1, 1, 1, 2, 2, 3], k = 2
输出: [1, 2]

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

提示


Mike大约 5 分钟stack/queuemediumhash tabledivide and conquersortingheap(priority queue)bucket sortcountingquick select
454, 四数之和II

一、题目描述

给你四个整数数组nums1nums2nums3nums4,数组长度都是n,请你计算有多少个元组(i, j, k, l)能满足:

  • 0 <= i, j, k, l < n
  • nums1[i] + nums2[j] + nums3[k] + nums4[l] == 0

示例 1
输入: nums1 = [1, 2], nums2 = [-2, -1], nums3 = [-1, 2], nums4 = [0, 2]
输出: 2
解释: 两个元组如下:


Mike大约 1 分钟hashtablemediumarrayhash table
2
3