排序
文章平均质量分 56
Lev_i
随便记住我,然后忘了吧
展开
-
581. 最短无序连续子数组
581. 最短无序连续子数组贴个题目:贴个示例:解题思路:1、 排序+对比数组:题目要求我们找最小的连续子数组,,而且这个最小的连续子数组排序之后能够让原数组升序,那么我们可以复制这个数组numcpy,然后进行排序升序,让result等于数组长度,从头遍历剪掉头,从后遍历剪掉尾,最后得判断result,如果result小于0,那就说明整个数组已经排好序了,所以返回0,大于0就返回result。2、代码://qsort的compare函数:升序排序int compare(const voi原创 2021-08-06 14:21:05 · 175 阅读 · 0 评论 -
1877. 数组中最大数对和的最小值
1877. 数组中最大数对和的最小值贴个题目:贴个示例:解题思路:吐槽一下:经典我看不懂题目想让我干嘛?但是看懂了又很简单?什么叫做:“最大数对和最小”?后来结合示例想一想,应该是让数对的组成平均的前提下,求出最大数对和。什么叫做数对组成平均呢?我是这么理解的,就是数对比较对称,看示例2大概就能明白我的意思。那么搞清楚题意之后,其实就很简单啦:先排序,然后排序,然后求关于数组中间对称的数对和最大值贴代码:int cmp(const void *a,const void *b)原创 2021-07-20 19:14:39 · 74 阅读 · 0 评论 -
645. 错误的集合
645. 错误的集合贴个题目:贴个示例:解题思路:哈希表法:首先来读一下题目:题目意思就是我本来有一个包含1~n的数组,顺序不定,但是呢被一个集合打乱且复制其中一个元素,形成了新的数组请我们找出这个重复元素和缺失的元素那么由上可以得出,新建一个数组reNums,长度为2:int *reNums=(int *)malloc(sizeof(int)*2)*returnSize=2然后用哈希表,统计原数组的元素重复元素个数是2,没有出现的元素个数应该为0根据这个我们就可以找到那重原创 2021-07-15 16:29:38 · 107 阅读 · 0 评论 -
1846. 减小和重新排列数组后的最大元素
1846. 减小和重新排列数组后的最大元素前言:这是一道不应该是中等题的简单题,因为确实常规方法也能做出来我就用了两种方法,一种就是排序+贪心,另外一种就是计数(哈希?)+贪心贴个题目:代码示例解题思路第一种:排序+贪心算法首先我们先排序,然后根据题目说第一个元素必须为1,因此有arr[0]=1紧接着因为求的是最大值,根据贪心算法,我们让每一元素都满足以下条件即可:abs(arr[i] - arr[i - 1]) <= 1最后返回最后一个元素就可以了第一种代码:原创 2021-07-15 10:55:42 · 101 阅读 · 0 评论 -
274. H指数
274. H指数题目简介:题目示例: 提示:如果h有多个可能的值,h指数就是其中最大的一个解题思路:有一点值得注意的是:h不一定存在于数组中,下面举个例子数组:[4, 0, 6, 1, 5], 它得出来的h指数是:3,h在这里并不是数组的元素有了这一点做铺垫,我们就大概感觉到,h这个数大概在数组元素中排中间位置,而且根据示例中的提示:h是最大的一个,就知道,应该将数组排序之后,从大到小遍历,找出h那么,h又满足什么条件呢?假设数组有N个数组,已经是升序,那么先让h=0原创 2021-07-11 22:29:37 · 77 阅读 · 0 评论