Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 1592. 重新排列单词间的空格
题目简介:给你一个字符串 text ,该字符串由若干被空格包围的单词组成。每个单词由一个或者多个小写英文字母组成,并且两个单词之间至少存在一个空格。题目测试用例保证text 至少包含一个单词。 请你重新排列空格,使每对相邻单词之间的空格数目都 相等 ,并尽可能 最大化 该数目。如果不能重新平均分配所有空格,请 将多余的空格放置在字符串末尾 ,这也意味着返回的字符串应当与原 text 字符串的长度相等。 返回 重新排列空格后的字符串 。 示例 1: 123输入:text = " this is a sentence "输出:"this is a...
Leetcode 828. 统计子串中的唯一字符
题目简介:我们定义了一个函数 countUniqueChars(s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。 例如:s = "LEETCODE" ,则其中 "L", "T","C","O","D" 都是唯一字符,因为它们只出现一次,所以 countUniqueChars(s) = 5 。 本题将会给你一个字符串 s ,我们需要返回 countUniqueChars(t) 的总和,其中 t 是 s 的子字符串。输入用例保证返回值为 32 位整数。 注意,某...
Leetcode 652. 寻找重复的子树
题目简介:给定一棵二叉树 root,返回所有重复的子树。 对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 如果两棵树具有相同的结构和相同的结点值,则它们是重复的。 示例 1: 12输入:root = [1,2,3,4,null,2,4,null,null,4]输出:[[2,4],[4]] 提示: 树中的结点数在[1,10^4]范围内。 -200 <= Node.val <= 200 思路:首先序列化子树,将其序列化为根节点值 + " " + 左子树序列化结果 + " " + 右子树序列化结果的形式,只要两个子树的序列...
Leetcode 1582. 二进制矩阵中的特殊位置
题目简介:给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 *mat* 中特殊位置的数目 。 特殊位置 定义:如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0(行和列的下标均 从 0 开始 ),则位置 (i, j) 被称为特殊位置。 示例 1: 123456输入:mat = [[1,0,0], [0,0,1], [1,0,0]] 输出:1解释:(1,2) 是一个特殊位置,因为 mat[1][2] == 1 且所处的行和列上所...
Leetcode 646. 最长数对链
题目简介:给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。 现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。 给定一个数对集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序选择其中的一些数对来构造。 示例: 123输入:[[1,2], [2,3], [3,4]]输出:2解释:最长的数对链是 [1,2] -> [3,4] 提示: 给出数对的个数在 [1, 1000] 范围内。 思路:注意是任意顺序,所以可以使用贪心,每次找最小的数,然后以此类...
Leetcode 687. 最长同值路径
题目简介:给定一个二叉树的 root ,返回 最长的路径的长度 ,这个路径中的 每个节点具有相同值 。 这条路径可以经过也可以不经过根节点。 两个节点之间的路径长度 由它们之间的边数表示。 示例 1: 12输入:root = [5,4,5,1,1,5]输出:2 示例 2: 12输入:root = [1,4,5,4,4,5]输出:2 提示: 树的节点数的范围是 [0, 10^4] -1000 <= Node.val <= 1000 树的深度将不超过 1000 思路:利用深度优先搜索,最长同值路径长度必定为某一节点的左最长同值路径长度与右最长同值路径长度之和。 我们先...
Leetcode 1475. 商品折扣后的最终价格
题目简介:给你一个数组 prices ,其中 prices[i] 是商店里第 i 件商品的价格。 商店里正在进行促销活动,如果你要买第 i 件商品,那么你可以得到与 prices[j] 相等的折扣,其中 j 是满足 j > i 且 prices[j] <= prices[i] 的 最小下标 ,如果没有满足条件的 j ,你将没有任何折扣。 请你返回一个数组,数组中第 i 个元素是折扣后你购买商品 i 最终需要支付的价格。 示例 1: 1234567输入:prices = [8,4,6,2,3]输出:[4,2,4,2,3]解释:商品 0 的价格为 price[0]=8 ,你将得到...
Leetcode 946. 验证栈序列
题目简介:给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 示例 1: 12345输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3), push(4), pop() -> 4,push(5), pop() -> 5, pop() -> 3, pop() -> 2, pop() -&g...
Leetcode 998. 最大二叉树 II
题目简介:最大树 定义:一棵树,并满足:其中每个节点的值都大于其子树中的任何其他值。 给你最大树的根节点 root 和一个整数 val 。 就像 之前的问题 那样,给定的树是利用 Construct(a) 例程从列表 a(root = Construct(a))递归地构建的: 如果 a 为空,返回 null 。 否则,令 a[i] 作为 a 的最大元素。创建一个值为 a[i] 的根节点 root 。 root 的左子树将被构建为 Construct([a[0], a[1], ..., a[i - 1]]) 。 root 的右子树将被构建为 Construct([a[i + 1], a[...
Leetcode 1470. 重新排列数组
题目简介:给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。 请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排列,返回重排后的数组。 示例 1: 123输入:nums = [2,5,1,3,4,7], n = 3输出:[2,3,5,4,1,7] 解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7] 提示: 1 <= n <= 500 nums.length == 2n 1 <= nums[i] <=...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili