1619. 删除某些元素后的数组均值
https://leetcode.cn/problems/mean-of-array-after-removing-some-elements/ 给你一个整数数组 arr ,请你删除最小 5% 的数字和最大 5% 的数字后,剩余数字的平均值。 与 标准答案 误差在 10-5 的结果都被视为正确结果。 示例 1: 输入: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: 输入:arr = [6,2,7,5,1,2,0,3,10,2,5,0,5,5,0,8,7,6,8,0] 输出:4.00000 示例 3: 输入:arr = [6,0,7,0,7,5,7,8,3,4,0,7,8,1,6,8,1,1,2,4,8,1,9,5,4,3,8,5,10,8,6,6,1,0,6,10,8,2,3,4] 输出:4.77778 示例 4: 输入:arr = [9,7,8,7,7,8,4,4,6,8,8,7,6,8,8,9,2,6,0,0,1,10,8 ...
670. 最大交换
https://leetcode.cn/problems/maximum-swap/ 给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 :
输入: 2736输出: 7236解释: 交换数字2和数字7。
示例 2 :
输入: 9973输出: 9973解释: 不需要交换。
注意:
给定数字的范围是 \([0, 10^8]\)
# 题解
暴力
class Solution {public: int maximumSwap(int num) { vector<int> a; while(num){ a.push_back(num%10); num/=10; } int t=1; for(int j=1;j<a.size();j++){ if(t){ int n=a[a.size()-j]; ...
1608. 特殊数组的特征值
https://leetcode.cn/problems/special-array-with-x-elements-greater-than-or-equal-x/ 给你一个非负整数数组 nums 。如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。 注意: x 不必 是 nums 的中的元素。 如果数组 nums 是一个 特殊数组 ,请返回它的特征值 x 。否则,返回 -1 。可以证明的是,如果 nums 是特殊数组,那么其特征值 x 是 唯一的 。 示例 1:
输入:nums = [3,5]输出:2解释:有 2 个元素(3 和 5)大于或等于 2 。
示例 2:
输入:nums = [0,0]输出:-1解释:没有满足题目要求的特殊数组,故而也不存在特征值 x 。如果 x = 0,应该有 0 个元素 >= x,但实际有 2 个。如果 x = 1,应该有 1 个元素 >= x,但实际有 0 个。如果 x = 2,应该有 2 个元素 >= x,但实际有 0 个。x 不 ...
857. 雇佣 K 名工人的最低成本
https://leetcode.cn/problems/minimum-cost-to-hire-k-workers/ 有 n 名工人。 给定两个数组 quality 和 wage ,其中,quality [i] 表示第 i 名工人的工作质量,其最低期望工资为 wage [i] 。 现在我们想雇佣 k 名工人组成一个工资组。在雇佣 一组 k 名工人时,我们必须按照下述规则向他们支付工资: 对工资组中的每名工人,应当按其工作质量与同组其他工人的工作质量的比例来支付工资。 工资组中的每名工人至少应当得到他们的最低期望工资。 给定整数 k ,返回 组成满足上述条件的付费群体所需的最小金额 。在实际答案的 10-5 以内的答案将被接受。。 示例 1:
输入: quality = [10,20,5], wage = [70,50,30], k = 2输出: 105.00000解释: 我们向 0 号工人支付 70,向 2 号工人支付 35。
示例 2:
输入: quality = [3,1,10,10,1], wage = [4,8,2,2,7], k = 3输出: 30.66667解释: 我 ...
669. 修剪二叉搜索树
https://leetcode.cn/problems/trim-a-binary-search-tree/ 给你二叉搜索树的根节点 root ,同时给定最小边界 low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在 [low, high] 中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。 所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。 示例 1: 输入:root = [1,0,2], low = 1, high = 2 输出:[1,null,2] 示例 2: 输入:root = [3,0,4,null,2,null,null,1], low = 1, high = 3 输出:[3,2,null,1] 提示:
树中节点数在范围 [1, 104] 内
0 <= Node.val <= 104
树中每个节点的值都是 唯一 的
题目数据保证输入是一棵有效的二叉搜索树
0 <= low <= high <= ...
1598. 文件夹操作日志搜集器
https://leetcode.cn/problems/crawler-log-folder/ 每当用户执行变更文件夹操作时,LeetCode 文件系统都会保存一条日志记录。 下面给出对变更操作的说明: “…/” :移动到当前文件夹的父文件夹。如果已经在主文件夹下,则 继续停留在当前文件夹 。 “./” :继续停留在当前文件夹。 “x/” :移动到名为 x 的子文件夹中。题目数据 保证总是存在文件夹 x 。 给你一个字符串列表 logs ,其中 logs [i] 是用户在 ith 步执行的操作。 文件系统启动时位于主文件夹,然后执行 logs 中的操作。 执行完所有变更文件夹操作后,请你找出 返回主文件夹所需的最小步数 。 示例 1:
输入:logs = ["d1/","d2/","../","d21/","./"]输出:2解释:执行 "../" 操作变更文件夹 2 次,即可回到主文件夹
示例 2:
输入:logs = ["d1/",&qu ...
润科通用面试
时间 2022/9/8 17:00 面试官没来,18:00 电话面,12 分钟,智能指针是什么(不会),进程间通信(说了 mpi)。 Qt,UE4
667. 优美的排列 II
https://leetcode.cn/problems/beautiful-arrangement-ii/ 给你两个整数 n 和 k ,请你构造一个答案列表 answer ,该列表应当包含从 1 到 n 的 n 个不同正整数,并同时满足下述条件: 假设该列表是 answer = [a1, a2, a3, … , an] ,那么列表 [a1 - a2, a2 - a3, a3 - a4, … , an-1 - an] 中应该有且仅有 k 个不同整数。 返回列表 answer 。如果存在多种答案,只需返回其中 任意一种 。 示例 1:
输入:n = 3, k = 1输出:[1, 2, 3]解释:[1, 2, 3] 包含 3 个范围在 1-3 的不同整数,并且 [1, 1] 中有且仅有 1 个不同整数:1
示例 2:
输入:n = 3, k = 2输出:[1, 3, 2]解释:[1, 3, 2] 包含 3 个范围在 1-3 的不同整数,并且 [2, 1] 中有且仅有 2 个不同整数:1 和 2
提示:
\(1 <= k < n <= 10^4\)
# 题解
思维题 ...
1592. 重新排列单词间的空格
https://leetcode.cn/problems/rearrange-spaces-between-words/ 给你一个字符串 text ,该字符串由若干被空格包围的单词组成。每个单词由一个或者多个小写英文字母组成,并且两个单词之间至少存在一个空格。题目测试用例保证 text 至少包含一个单词 。 请你重新排列空格,使每对相邻单词之间的空格数目都 相等 ,并尽可能 最大化 该数目。如果不能重新平均分配所有空格,请 将多余的空格放置在字符串末尾 ,这也意味着返回的字符串应当与原 text 字符串的长度相等。 返回 重新排列空格后的字符串 。 示例 1:
输入:text = " this is a sentence "输出:"this is a sentence"解释:总共有 9 个空格和 4 个单词。可以将 9 个空格平均分配到相邻单词之间,相邻单词间空格数为:9 / (4-1) = 3 个。
示例 2:
输入:text = " practice makes perfect"输出:"practice mak ...
828. 统计子串中的唯一字符
https://leetcode.cn/problems/count-unique-characters-of-all-substrings-of-a-given-string/ 我们定义了一个函数 countUniqueChars (s) 来统计字符串 s 中的唯一字符,并返回唯一字符的个数。 例如:s = “LEETCODE” ,则其中 “L”, “T”,“C”,“O”,“D” 都是唯一字符,因为它们只出现一次,所以 countUniqueChars (s) = 5 。 本题将会给你一个字符串 s ,我们需要返回 countUniqueChars (t) 的总和,其中 t 是 s 的子字符串。输入用例保证返回值为 32 位整数。 注意,某些子字符串可能是重复的,但你统计时也必须算上这些重复的子字符串(也就是说,你必须统计 s 的所有子字符串中的唯一字符)。 示例 1:
输入: s = "ABC"输出: 10解释: 所有可能的子串为:"A","B","C","AB","BC ...