关注Java领域相关技术 记录有趣的事情

快速排序

LeetCode-75. 颜色分类

问题地址 LeetCode每日一题/2020-10-07 LeetCode75. 颜色分类 问题描述 规则 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 示例 输入: 输出: 进阶 一个直观的解决方案是使用计数排序的两趟扫描算法。 首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。 你能想出一个仅使用常数空间的一趟扫描算法吗? 解析 解题思路 数据操作分析 见…
US-B.Ralph
8 months ago

LeetCode-347. 前 K 个高频元素

问题地址 LeetCode每日一题/2020-09-07 LeetCode347. 前 K 个高频元素 问题描述 规则 给定一个非空的整数数组,返回其中出现频率前 k 高的元素。 示例 示例一: 输入: nums = , k = 2 输出: 示例二: 输入: nums = , k = 1 输出: 提示: 你可以假设给定的 k 总是合理的,且 $1 ≤ k ≤$ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 $O(n log n)$ , n 是数组的大小。 题目数据保证答案唯一,换句话说,数组中前 $k$ 个高频元素的集合是唯一的。 你可以按任意顺序返回答案。 解析 解题思路 遍历原…
US-B.Ralph
9 months ago