五月集训 (第03天) —— 排序

Posted 英雄哪里出来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五月集训 (第03天) —— 排序相关的知识,希望对你有一定的参考价值。

文章目录

前言

        此为《英雄算法联盟:算法集训》的内容,具体内容详见:知识星球:英雄算法联盟
        欢迎大家积极在评论区留言发表自己的看法,知无不言,言无不尽,养成每天刷题的习惯,也可以自己发布优质的解题报告,供社区一同鉴赏,吸引一波自己的核心粉丝。
        希望大家先自己思考,如果实在没有想法,再看下面的算法思路,如果有思路但是写不出来,可以参考朋友圈中其他人的代码,总有一款是适合你的,关注一下他,取其之长,补给之短。
        今天集训的内容是:排序
        前三题较为简单,第四题需要进行一定的思考,如果想不出来,可以先记录下,后续再来做。

一、练习题目

题目链接难度
977. 有序数组的平方★☆☆☆☆
268. 丢失的数字★☆☆☆☆
1877. 数组中最大数对和的最小值★★☆☆☆
950. 按递增顺序显示卡牌★★☆☆☆

二、算法思路

1、有序数组的平方

        (1)直接将所有数分别平方;
        (2)然后排序后输出即可;

2、丢失的数字

        (1)首先将数组排序
        (2)遍历查找数字 不等于 下标的第一个数返回即可,如果找不到则返回数组的长度。

3、数组中最大数对和的最小值

        (1)利用贪心的思想。
        (2)先将所有数都进行排序。
        (3)第一个和最后一个相加、第二个和倒数第二个相加、以此类推,就能保证最大的和最小。

4、按递增顺序显示卡牌

        (1)模拟整个卡牌的抽取过程。模拟过程中存储的是卡牌的下标
        (2)目前有三个数组如下:

数组0123456
递增排序后的数组2357111317
模拟出来的下标0246315
结果数组2133115177

        (2)考虑第 4,说明 11 的这个数应该被放在结果数组的第 3 个位置,直接放进去就好了,执行 n 次这样的操作,最后返回结果数组就可以啦。

以上是关于五月集训 (第03天) —— 排序的主要内容,如果未能解决你的问题,请参考以下文章

五月集训(第11天) —— 矩阵

五月集训 (第09天) —— 二分查找

五月集训(第18天) —— 树

五月集训(第14天) —— 栈

五月集训(第24天) —— 线段树

五月集训(第31天) —— 状态压缩