Keshawn_lu's Blog

Keshawn_lu's Blog

Become a better myself.

Leetcode 1636. 按照频率将数组升序排序
题目简介:给你一个整数数组 nums ,请你将数组按照每个值的频率 升序 排序。如果有多个值的频率相同,请你按照数值本身将它们 降序 排序。 请你返回排序后的数组。 示例 1: 123输入:nums = [1,1,2,2,2,3]输出:[3,1,1,2,2,2]解释:'3' 频率为 1,'1' 频率为 2,'2' 频率为 3 。 示例 2: 123输入:nums = [2,3,1,3,2]输出:[1,3,3,2,2]解释:'2' 和 '3' 频率都为 2 ,所以它们之间按照数值本身降序排序...
Leetcode 827. 最大人工岛
题目简介:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返回执行此操作后,grid 中最大的岛屿面积是多少? 岛屿 由一组上、下、左、右四个方向相连的 1 形成。 示例 1: 123输入: grid = [[1, 0], [0, 1]]输出: 3解释: 将一格0变成1,最终连通两个小岛得到面积为 3 的岛屿。 示例 2: 123输入: grid = [[1, 1], [1, 0]]输出: 4解释: 将一格0变成1,岛屿的面积扩大为 4。 示例 3: 123输入: grid = [[1, 1], [1, 1]]输出: 4解释: 没有0可以让我们变成...
Leetcode 1624. 两个相同字符之间的最长子字符串
题目简介:给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符。如果不存在这样的子字符串,返回 -1 。 子字符串 是字符串中的一个连续字符序列。 示例 1: 123输入:s = "aa"输出:0解释:最优的子字符串是两个 'a' 之间的空子字符串。 示例 3: 123输入:s = "cbzxy"输出:-1解释:s 中不存在出现出现两次的字符,所以返回 -1 。 提示: 1 <= s.length <= 300 s 只含小写英文字母 思路:记录下每个字符第一次出现的位置,...
Leetcode 1619. 删除某些元素后的数组均值
题目简介:给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。 与 标准答案 误差在 10^-5 的结果都被视为正确结果。 示例 1: 123输入:arr = [1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3]输出:2.00000解释:删除数组中最大和最小的元素后,所有元素都等于 2,所以平均值为 2 。 示例 2: 12输入:arr = [6,2,7,5,1,2,0,3,10,2,5,0,5,5,0,8,7,6,8,0]输出:4.00000 提示: 20 <= arr.length <= 1000...
Leetcode 670. 最大交换
题目简介:给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 123输入: 2736输出: 7236解释: 交换数字2和数字7。 示例 2 : 123输入: 9973输出: 9973解释: 不需要交换。 注意: 给定数字的范围是 [0, 10^8] 思路:贪心,首先将num转换为字符串并逆序排序,然后用另一个num的字符串去一一对应。 即要找到最靠近左边且不相等的数字,若temp[i] = 9, str_num[i] = 3。 则从str_num[str_num.size() - 1]开始寻找9的位置,并交换即可。 tip: string 转...
Leetcode 1608. 特殊数组的特征值
题目简介:给你一个非负整数数组 nums 。如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。 注意: x 不必 是 nums 的中的元素。 如果数组 nums 是一个 特殊数组 ,请返回它的特征值 x 。否则,返回 -1 。可以证明的是,如果 nums 是特殊数组,那么其特征值 x 是 唯一的 。 示例 1: 123输入:nums = [3,5]输出:2解释:有 2 个元素(3 和 5)大于或等于 2 。 示例 2: 1234567输入:nums = [0,0]输出:-1解释:没有满足题...
Leetcode 857. 雇佣 K 名工人的最低成本
题目简介:有 n 名工人。 给定两个数组 quality 和 wage ,其中,quality[i] 表示第 i 名工人的工作质量,其最低期望工资为 wage[i] 。 现在我们想雇佣 k 名工人组成一个工资组。在雇佣 一组 k 名工人时,我们必须按照下述规则向他们支付工资: 对工资组中的每名工人,应当按其工作质量与同组其他工人的工作质量的比例来支付工资。 工资组中的每名工人至少应当得到他们的最低期望工资。 给定整数 k ,返回 组成满足上述条件的付费群体所需的最小金额 。在实际答案的 10-5 以内的答案将被接受。 示例 1: 123输入: quality = [10,20,5],...
Leetcode 669. 修剪二叉搜索树
题目简介:给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。 所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。 示例 1: 12输入:root = [3,0,4,null,2,null,null,1], low = 1, high = 3输出:[3,2,null,1] 提示: 树中节点数在范围 [1, 10^4] 内...
Leetcode 1598. 文件夹操作日志搜集器
题目简介:每当用户执行变更文件夹操作时,LeetCode 文件系统都会保存一条日志记录。 下面给出对变更操作的说明: "../" :移动到当前文件夹的父文件夹。如果已经在主文件夹下,则 继续停留在当前文件夹 。 "./" :继续停留在当前文件夹。 "x/" :移动到名为 x 的子文件夹中。题目数据 保证总是存在文件夹 x 。 给你一个字符串列表 logs ,其中 logs[i] 是用户在 i 步执行的操作。 文件系统启动时位于主文件夹,然后执行 logs 中的操作。 执行完所有变更文件夹操作后,请你找出 返回主文件夹所需的最...
Leetcode 667. 优美的排列 II
题目简介:给你两个整数 n 和 k ,请你构造一个答案列表 answer ,该列表应当包含从 1 到 n 的 n 个不同正整数,并同时满足下述条件: 假设该列表是 answer = [a1, a2, a3, ... , an] ,那么列表 [|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1 - an|] 中应该有且仅有 k 个不同整数。 返回列表 answer 。如果存在多种答案,只需返回其中 任意一种 。 示例 1: 123输入:n = 3, k = 1输出:[1, 2, 3]解释:[1, 2, 3] 包含 3 个范围在 1-3 的不同整数,...
avatar
鸣蜩十九
Always
友链
CSDN BiliBili