五月集训 (第03天) —— 排序
Posted 英雄哪里出来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五月集训 (第03天) —— 排序相关的知识,希望对你有一定的参考价值。
文章目录
前言
此为《英雄算法联盟:算法集训》的内容,具体内容详见:知识星球:英雄算法联盟。
欢迎大家积极在评论区留言发表自己的看法,知无不言,言无不尽,养成每天刷题的习惯,也可以自己发布优质的解题报告,供社区一同鉴赏,吸引一波自己的核心粉丝。
希望大家先自己思考,如果实在没有想法,再看下面的算法思路,如果有思路但是写不出来,可以参考朋友圈中其他人的代码,总有一款是适合你的,关注一下他,取其之长,补给之短。
今天集训的内容是:排序
前三题较为简单,第四题需要进行一定的思考,如果想不出来,可以先记录下,后续再来做。
一、练习题目
题目链接 | 难度 |
---|---|
977. 有序数组的平方 | ★☆☆☆☆ |
268. 丢失的数字 | ★☆☆☆☆ |
1877. 数组中最大数对和的最小值 | ★★☆☆☆ |
950. 按递增顺序显示卡牌 | ★★☆☆☆ |
二、算法思路
1、有序数组的平方
(1)直接将所有数分别平方;
(2)然后排序后输出即可;
2、丢失的数字
(1)首先将数组排序
(2)遍历查找数字 不等于 下标的第一个数返回即可,如果找不到则返回数组的长度。
3、数组中最大数对和的最小值
(1)利用贪心的思想。
(2)先将所有数都进行排序。
(3)第一个和最后一个相加、第二个和倒数第二个相加、以此类推,就能保证最大的和最小。
4、按递增顺序显示卡牌
(1)模拟整个卡牌的抽取过程。模拟过程中存储的是卡牌的下标
(2)目前有三个数组如下:
数组 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
递增排序后的数组 | 2 | 3 | 5 | 7 | 11 | 13 | 17 |
模拟出来的下标 | 0 | 2 | 4 | 6 | 3 | 1 | 5 |
结果数组 | 2 | 13 | 3 | 11 | 5 | 17 | 7 |
(2)考虑第 4,说明 11 的这个数应该被放在结果数组的第 3 个位置,直接放进去就好了,执行 n 次这样的操作,最后返回结果数组就可以啦。
以上是关于五月集训 (第03天) —— 排序的主要内容,如果未能解决你的问题,请参考以下文章