Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 1302. 层数最深叶子节点的和
题目简介:给你一棵二叉树的根节点 root ,请你返回 层数最深的叶子节点的和 。 示例 1: 12输入:root = [1,2,3,4,5,null,6,7,null,null,null,null,8]输出:15 示例 2: 12输入:root = [6,7,8,2,7,1,3,9,null,1,4,null,null,null,5]输出:19 提示: 树中节点数目在范围 [1, 10^4] 之间。 1 <= Node.val <= 100 思路:常规的广度优先搜索进行层序遍历即可,将最后一层的结点值相加返回。 代码如下:12345678910111213141516...
Leetcode 1656. 设计有序流
题目简介:有 n 个 (id, value) 对,其中 id 是 1 到 n 之间的一个整数,value 是一个字符串。不存在 id 相同的两个 (id, value) 对。 设计一个流,以 任意 顺序获取 n 个 (id, value) 对,并在多次调用时 按 id 递增的顺序 返回一些值。 实现 OrderedStream 类: OrderedStream(int n) 构造一个能接收 n 个值的流,并将当前指针 ptr 设为 1 。 String[] insert(int id, String value) 向流中存储新的 (id, value) 对。存储后: 如果流存储有 id...
Leetcode 641. 设计循环双端队列
题目简介:设计实现双端队列。 实现 MyCircularDeque 类: MyCircularDeque(int k) :构造函数,双端队列最大为 k 。 boolean insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true ,否则返回 false 。 boolean insertLast() :将一个元素添加到双端队列尾部。如果操作成功返回 true ,否则返回 false 。 boolean deleteFront() :从双端队列头部删除一个元素。 如果操作成功返回 true ,否则返回 false 。 boolean deleteLast() ...
Leetcode 1422. 分割字符串的最大得分
题目简介:给你一个由若干 0 和 1 组成的字符串 s ,请你计算并返回将该字符串分割成两个 非空 子字符串(即 左 子字符串和 右 子字符串)所能获得的最大得分。 「分割字符串的得分」为 左 子字符串中 0 的数量加上 右 子字符串中 1 的数量。 示例 1: 123456789输入:s = "011101"输出:5 解释:将字符串 s 划分为两个非空子字符串的可行方案有:左子字符串 = "0" 且 右子字符串 = "11101",得分 = 1 + 4 = 5 左子字符串 = "01" 且 右子字符串 = ...
Leetcode 768. 最多能完成排序的块 II
题目简介:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”,并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。 我们最多能将数组分成多少块? 示例 1: 12345输入: arr = [5,4,3,2,1]输出: 1解释:将数组分成2块或者更多块,都无法得到所需的结果。例如,分成 [5, 4], [3, 2, 1] 的结果是 [4, 5, 1, 2, 3],这不是有序的数组。 示例 2: 12345输入: arr = [2,1,3,4,4]输出: 4解释:我们可以把它分成两块,例如 [2, 1], [3, 4, 4]。然而,分成 [2...
Leetcode 1282. 用户分组
题目简介:有 n 个人被分成数量未知的组。每个人都被标记为一个从 0 到 n - 1 的唯一ID 。 给定一个整数数组 groupSizes ,其中 groupSizes[i] 是第 i 个人所在的组的大小。例如,如果 groupSizes[1] = 3 ,则第 1 个人必须位于大小为 3 的组中。 返回一个组列表,使每个人 i 都在一个大小为 groupSizes[i] 的组中。 每个人应该 恰好只 出现在 一个组 中,并且每个人必须在一个组中。如果有多个答案,返回其中 任何 一个。可以 保证 给定输入 至少有一个 有效的解。 示例 1: 1234567输入:groupSizes = ...
Leetcode 1417. 重新格式化字符串
题目简介:给你一个混合了数字和字母的字符串 s,其中的字母均为小写英文字母。 请你将该字符串重新格式化,使得任意两个相邻字符的类型都不同。也就是说,字母后面应该跟着数字,而数字后面应该跟着字母。 请你返回 重新格式化后 的字符串;如果无法按要求重新格式化,则返回一个 空字符串 。 示例 1: 123输入:s = "a0b1c2"输出:"0a1b2c"解释:"0a1b2c" 中任意两个相邻字符的类型都不同。 "a0b1c2", "0a1b2c", "0c2a1b" 也是满...
Leetcode 640. 求解方程
题目简介:求解一个给定的方程,将x以字符串 "x=#value" 的形式返回。该方程仅包含 '+' , '-' 操作,变量 x 和其对应系数。 如果方程没有解,请返回 "No solution" 。如果方程有无限解,则返回 “Infinite solutions” 。 题目保证,如果方程中只有一个解,则 ‘x’ 的值是一个整数。 示例 1: 12输入: equation = "x+5-3+x=6+x-2"输出: "x=2" 示例 2: 12输入: equation = &quo...
Leetcode 1413. 逐步求和得到正数的最小值
题目简介:给你一个整数数组 nums 。你可以选定任意的 正数 startValue 作为初始值。 你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。 请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue 。 示例 1: 12345678910输入:nums = [-3,2,-3,4,2]输出:5解释:如果你选择 startValue = 4,在第三次累加时,和小于 1 。 累加求和  startValue = 4 | startValue =...
Leetcode 761. 特殊的二进制序列
题目简介:特殊的二进制序列是具有以下两个性质的二进制序列: 0 的数量与 1 的数量相等。 二进制序列的每一个前缀码中 1 的数量要大于等于 0 的数量。 给定一个特殊的二进制序列 S,以字符串形式表示。定义一个操作 为首先选择 S 的两个连续且非空的特殊的子串,然后将它们交换。(两个子串为连续的当且仅当第一个子串的最后一个字符恰好为第二个子串的第一个字符的前一个字符。) 在任意次数的操作之后,交换后的字符串按照字典序排列的最大的结果是什么? 示例 1: 12345输入: S = "11011000"输出: "11100100"解释:将子串 &...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili