
排序
NLP_victor
这个作者很懒,什么都没留下…
展开
-
LeetCode493. 翻转对(归并排序)
1、题目描述https://leetcode-cn.com/problems/reverse-pairs/给定一个数组nums,如果i < j且nums[i] > 2*nums[j]我们就将(i, j)称作一个重要翻转对。你需要返回给定数组中的重要翻转对的数量。输入: [1,3,2,3,1]输出: 2输入: [2,4,3,5,1]输出: 3给定数组的长度不会超过50000。 输入数组中的所有数字都在32位整数的表示范围内。2、代码详解...原创 2020-11-29 17:19:49 · 224 阅读 · 0 评论 -
LeetCode164. 最大间距(桶排序)
1、题目描述https://leetcode-cn.com/problems/maximum-gap/给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。你可以假设数组中所有元素都是非负整数,且数值在 32原创 2020-11-26 22:14:01 · 339 阅读 · 2 评论 -
LeetCode1365. 有多少小于当前数字的数字(计数排序)
1、题目描述https://leetcode-cn.com/problems/how-many-numbers-are-smaller-than-the-current-number/给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目。 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i 且 nums[j] < nums[i] 。 以数组形式返回答案。输入:nums = [8,1,2,2..原创 2020-10-26 22:56:28 · 283 阅读 · 0 评论 -
双指针-LeetCode977. 有序数组的平方
1、题目描述https://leetcode-cn.com/problems/squares-of-a-sorted-array/给定一个按非递减顺序排序的整数数组A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。输入:[-4,-1,0,3,10]输出:[0,1,9,16,100]输入:[-7,-3,2,3,11]输出:[4,9,9,49,121]1 <= A.length <= 10000 -10000 <= A[i] <= 10000 .原创 2020-10-17 23:11:48 · 261 阅读 · 0 评论 -
LeetCode88. 合并两个有序数组 + 合并K个有序数组
一、88. 合并两个有序数组(双指针)https://leetcode-cn.com/problems/merge-sorted-array/输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 输出:[1,2,2,3,5,6]法零:nums1[:] = sorted(nums1[:m] + nums2)法一:双指针 / 从前往后,时间O(n+m),空间O(m)class Solution(object).原创 2020-07-17 21:30:13 · 2053 阅读 · 0 评论 -
链表-LeetCode148. 排序链表
1、题目描述在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。2、代码详解2.1 归并排序(常用)2.2 快速排序快速排序的最坏时间复杂度是 o(n*n),均摊复杂度才是 o(nlogn)。除非用 bfprt 等算法先进行轴心数选择,才可以降低最坏时间复杂度。要求:期望平均时间复杂度为 O(nlogn),期望额外空间复杂度为 O(logn)。 思考题: 如果只能改变链表结构,不能修改每个节点的val值该如何做呢?# Definition fo..原创 2020-06-16 23:06:56 · 282 阅读 · 0 评论 -
归并排序-LeetCode23. 合并K个排序链表
1、题目描述https://leetcode-cn.com/problems/merge-k-sorted-lists/合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。2、代码详解2.1、合并k个排序数组(分治)题目链接:https://www.lintcode.com/problem/merge-k-sorted-arrays/description# O(N log k) 的时间复杂度内完成: N 是所有数组包含的整数总数量。 k 是数组的个数。#..原创 2020-06-12 22:51:54 · 429 阅读 · 0 评论 -
40:最小的K个数(剑指offer第2版Python)
1、题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。2、代码详解2.1 基于划分的方法如果是查找第k个数字,第一次划分之后,划分的位置如果大于k,那么就在前面的子数组中进行继续划分,反之则在后面的子数组继续划分,时间复杂度O(n)2.2 适用于海量数据的方法该方法基于二叉树或者堆来实现,首先把数...原创 2019-12-23 19:14:24 · 215 阅读 · 0 评论 -
LeetCode—Python—347. 前K个高频元素
1、题目描述给定一个非空的整数数组,返回其中出现频率前k高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的k总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。 你的算法的时间复杂度必须优于 O(nlog...原创 2019-03-10 21:02:26 · 501 阅读 · 0 评论 -
LeetCod75.颜色分类(荷兰国旗问题)(Python)
1、题目描述给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序...原创 2019-03-10 20:11:42 · 563 阅读 · 0 评论 -
LeetCode—Python—215. 数组中的第K个最大元素(快排、堆排序)
1、题目描述在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。2、用快...原创 2019-03-09 13:23:04 · 1616 阅读 · 0 评论