Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 662. 二叉树最大宽度
题目简介:给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度。将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,这些 null 节点也计入长度。 题目数据保证答案将会在 32 位 带符号整数范围内。 示例 1: 123输入:root = [1,3,2,5,3,null,9]输出:4解释:最大宽度出现在树的第 3 层,宽度为 4 (5,3,null,9) 。 提示: 树中节点的数目范围是 [1, 3000] -100 <...
Leetcode 1464. 数组中两元素的最大乘积
题目简介:给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。 请你计算并返回该式的最大值。 示例 1: 123输入:nums = [3,4,5,2]输出:12 解释:如果选择下标 i=1 和 j=2(下标从 0 开始),则可以获得最大值,(nums[1]-1)*(nums[2]-1) = (4-1)*(5-1) = 3*4 = 12 。 提示: 2 <= nums.length <= 500 1 <= nums[i] <= 10^3 思路:简单排序即可。 代码如下:1234567...
Leetcode 658. 找到 K 个最接近的元素
题目简介:给定一个 排序好 的数组 arr ,两个整数 k 和 x ,从数组中找到最靠近 x(两数之差最小)的 k 个数。返回的结果必须要是按升序排好的。 整数 a 比整数 b 更接近 x 需要满足: |a - x| < |b - x| 或者 |a - x| == |b - x| 且 a < b 示例 1: 12输入:arr = [1,2,3,4,5], k = 4, x = 3输出:[1,2,3,4] 提示: 1 <= k <= arr.length 1 <= arr.length <= 104 arr 按 升序 排列 -104 <=...
Leetcode 1460. 通过翻转子数组使两个数组相等
题目简介:给你两个长度相同的整数数组 target 和 arr 。每一步中,你可以选择 arr 的任意 非空子数组 并将它翻转。你可以执行此过程任意次。 如果你能让 arr 变得与 target 相同,返回 True;否则,返回 False。 示例 1: 1234567输入:target = [1,2,3,4], arr = [2,4,1,3]输出:true解释:你可以按照如下步骤使 arr 变成 target:1- 翻转子数组 [2,4,1] ,arr 变成 [1,4,2,3]2- 翻转子数组 [4,2] ,arr 变成 [1,2,4,3]3- 翻转子数组 [4,3] ,arr 变成 ...
Leetcode 782. 变为棋盘
题目简介:一个 n x n 的二维网络 board 仅由 0 和 1 组成 。每次移动,你能任意交换两列或是两行的位置。 返回 将这个矩阵变为 “棋盘” 所需的最小移动次数 。如果不存在可行的变换,输出 -1。 “棋盘” 是指任意一格的上下左右四个方向的值均与本身不同的矩阵。 示例 1: 12345输入: board = [[0,1,1,0],[0,1,1,0],[1,0,0,1],[1,0,0,1]]输出: 2解释:一种可行的变换方式如下,从左到右:第一次移动交换了第一列和第二列。第二次移动交换了第二行和第三行。 示例 2: 123输入: board = [[1, 0], [1, ...
Leetcode 655. 输出二叉树
题目简介:给你一棵二叉树的根节点 root ,请你构造一个下标从 0 开始、大小为 m x n 的字符串矩阵 res,用以表示树的 格式化布局 。构造此格式化布局矩阵需要遵循以下规则: 树的 高度 为 height ,矩阵的行数 m 应该等于 height + 1 。 矩阵的列数 n 应该等于 $2^{height+1} - 1$ 。 根节点 需要放置在 顶行 的 正中间 ,对应位置为 res[0][(n-1)/2] 。 对于放置在矩阵中的每个节点,设对应位置为 res[r][c] ,将其左子节点放置在 res[r+1][c-2height-r-1] ,右子节点放置在 res[r+1]...
Leetcode 1455. 检查单词是否为句中其他单词的前缀
题目简介:给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。 如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1 。 字符串 s 的 前缀 是 s 的任何前导连续子字符串。 示例 1: 123输入:sentence...
Leetcode 654. 最大二叉树
题目简介:给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。 递归地在最大值 左边 的 子数组前缀上 构建左子树。 递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums 构建的 最大二叉树 。 示例 1: 123456789101112输入:nums = [3,2,1,6,0,5]输出:[6,3,5,null,2,0,null,null,1]解释:递归调用如下所示:- [3,2,1,6,0,5] 中的最大值是 6 ,左边部分是 [3,2,1] ,右边部分是 [0,5] 。 ...
Leetcode 1450. 在既定时间做作业的学生人数
题目简介:给你两个整数数组 startTime(开始时间)和 endTime(结束时间),并指定一个整数 queryTime 作为查询时间。 已知,第 i 名学生在 startTime[i] 时开始写作业并于 endTime[i] 时完成作业。 请返回在查询时间 queryTime 时正在做作业的学生人数。形式上,返回能够使 queryTime 处于区间 [startTime[i], endTime[i]](含)的学生人数。 示例 1: 123456输入:startTime = [1,2,3], endTime = [3,2,7], queryTime = 4输出:1解释:一共有 3 名...
Leetcode 1224. 最大相等频率
题目简介:给你一个正整数数组 nums,请你帮忙从该数组中找出能满足下面要求的 最长 前缀,并返回该前缀的长度: 从前缀中 恰好删除一个 元素后,剩下每个数字的出现次数都相同。 如果删除这个元素后没有剩余元素存在,仍可认为每个数字都具有相同的出现次数(也就是 0 次)。 示例 1: 123输入:nums = [2,2,1,1,5,3,3,5]输出:7解释:对于长度为 7 的子数组 [2,2,1,1,5,3,3],如果我们从中删去 nums[4] = 5,就可以得到 [2,2,1,1,3,3],里面每个数字都出现了两次。 示例 2: 12输入:nums = [1,1,1,2,2,2,3...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili