![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
颜值博主
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 51. 数组中的逆序对
难度困难364在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5限制:0 <= 数组长度 <= 50000通过归并排序,在排序过程中记录逆序对的数量。class Solution {public: int res = 0; vector<int>Des; // 中间数组 void merge(vector<int&g原创 2021-03-22 16:49:51 · 94 阅读 · 0 评论 -
148. 排序链表(归并排序)
难度中等1048给你链表的头结点head,请将其按升序排列并返回排序后的链表。进阶:你可以在O(nlogn)时间复杂度和常数级空间复杂度下,对链表进行排序吗?示例 1:输入:head = [4,2,1,3]输出:[1,2,3,4]示例 2:输入:head = [-1,5,3,4,0]输出:[-1,0,3,4,5]示例 3:输入:head = []输出:[]提示:链表中节点的数目在范围[0, 5 * 104]...原创 2021-03-16 10:42:29 · 229 阅读 · 0 评论 -
排序方法总结
常用的排序方式包括快排、归并排序、堆排序等。其中,快速排序对于C++来说,可以很方便使用函数qsort、sort对目标序列进行排序。基本快速排序的方法,每次把数组分成两分和中间的一个划分值,而对于有多个重复值的数组来说,基本排序的效率较低。集成在C语言库函数里面的的qsort函数,使用三路划分的方法解决这个问题。所谓三路划分,是指把数组划分成小于划分值,等于划分值和大于划分值的三个部分。sort是qsort的升级版,如果能用sort尽量用sort,使用也比较简单,不像qsort还得自己去写cm.原创 2021-03-04 21:59:02 · 298 阅读 · 1 评论 -
300. 最长递增子序列(Longes Increasing Subsequence, LIS)
难度中等1382给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。示例 2:输入:nums = [0,1,0,3,2,3]输出:4示例 3:输入:...原创 2021-03-04 16:03:54 · 294 阅读 · 1 评论 -
数据结构笔记
向量(vector):与常见的数组极为相似,申请的是连续地址下的一段内存空间。不同点有很多,主要的点包括:作为一个类,接口的使用很方便,有很多较为使用的函数(包括排序、查找等),其占用的内存空间可以动态变化,当当前大小的内存空间被利用完后仍需要增加数据时会自动扩容(当然自动指的也是类里面定义的扩容函数)。常用的排序方法为起泡排序和归并排序。列表(LIST):通过链表实现,与向量的区别在于其不要求数据的地址空间连续,而是通过记录前驱和后驱指针来保持数据的连续性,与向量结构相比,其优点在于对数据的插原创 2020-06-15 10:54:02 · 550 阅读 · 0 评论 -
Letcode 2020秋季赛 2. 早餐组合(排序)
2.早餐组合题目难度Easy小扣在秋日市集选择了一家早餐摊位,一维整型数组staple中记录了每种主食的价格,一维整型数组drinks中记录了每种饮料的价格。小扣的计划选择一份主食和一款饮料,且花费不超过x元。请返回小扣共有多少种购买方案。注意:答案需要以1e9 + 7 (1000000007)为底取模,如:计算初始结果为:1000000008,请返回1示例 1:输入:staple = [10,20,5], drinks = [5,5,2], x = 15输出...原创 2020-09-12 17:20:48 · 390 阅读 · 0 评论 -
5452. 判断能否形成等差数列(Leetcode 196周赛)
给你一个数字数组arr。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为等差数列。如果可以重新排列数组形成等差数列,请返回true;否则,返回false。示例 1:输入:arr = [3,5,1]输出:true解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。示例 2:输入:arr = [1,2,4]输出:false解释:无法通过重新排序得到等差数列。提示:...原创 2020-07-05 12:59:33 · 354 阅读 · 0 评论 -
数据结构(Tsinghua--灯塔(LightHouse))
描述海上有许多灯塔,为过路船只照明。如图一所示,每个灯塔都配有一盏探照灯,照亮其东北、西南两个对顶的直角区域。探照灯的功率之大,足以覆盖任何距离。灯塔本身是如此之小,可以假定它们不会彼此遮挡。若灯塔A、B均在对方的照亮范围内,则称它们能够照亮彼此。比如在图二的实例中,蓝、红灯塔可照亮彼此,蓝、绿灯塔则不是,红、绿灯塔也不是。现在,对于任何一组给定的灯塔,请计算出其中有多少对灯塔能够照亮彼此。输入共n+1行。第1行为1个整数n,表示灯塔的总数。第2到n+1行每行包含2个原创 2020-06-23 13:59:01 · 1063 阅读 · 0 评论