# 试题:排序

LeetCode试题

# 难度:简单

#242 有效的字母异位词

思路:使用map保存2个字符串的中所有的字符出现次数,对比2个map的数据是否相等,来判断是否为字母异位词

#349 两个数组的交集(不重复)

思路1:循环一个数组,找另一个数组中是否存在元素,如果存在再判断交集数组是否已经记录,如果记录则不需要再push

思路2:2个分别存到set中,再对比2个set是否相等

#350 两个数组的交集(重复)

思路:思路与#349类似,当判断存在时,删除另一个数组中对应的元素,也就是使其个数减1,这里没法使用set,由于set会自动去重

#922 按奇偶排序数组

思路:遍历一遍数组,把奇数和偶数单独分开,之后再按顺序push到最终数组中

#976 三角形的最大周长

思路:先对数组进行排序,再反向遍历数组,取最早满足3边关系的连续3个元素即可,这里为什么选3边连续,可以证明

#1030 距离顺序排列矩阵单元格

思路:使用桶排,把相同距离的单元格记录在一个桶里,之后再按顺序展开桶

#1122 数组得相对排序

思路:对arr1进行处理,当arr1中得元素在arr2中存在时,则使用桶来计数,不存在则单放入一个数组。遍历之后对单独存放得数组排序,对计数得桶按计数值展开,最后拼接排序后得数组

#1356 根据数字二进制下1得数目排序

思路:使用sort以及自定义处理函数,对排序进行处理,转为二进制比较1的个数来排序

#1370 上升下降字符串

思路:先排序,再按顺序取不重复的字符拼接,最小和最大都需要重新排序再取字符,直到s.length为0

#1403 非递增顺序的最小子序列

思路:先排序,然后从最大数pop,计算由pop元素组成的数组和与原剩下数组和之间的大小,如果前者大则可以返回pop数组,否则继续pop原数组

#1491 去除最低和最高工资后的平均值

思路:排序后再删除最头最尾,再计算平均值。或者使用Math的最大最小值,使用总数减去这2者再计算平均值

#1502 判断能否形成等差数列

思路1:用前n项和公式计算

思路2:先排序,再计算公差是否一致

#1528 重新排列字符串

思路:创建一个数组,循环indices,数组索引为当前循环元素,数组的值为,s的当前索引值,最后拼接数组为字符串

上次更新: 2020-8-22 21:22:03