获取题库不需要订阅专栏,可直接私信我进入CSDN领军人物top1博主的华为OD交流圈观看完整题库、最新面试实况、考试报告等内容以及大佬一对一答疑。
题目描述
某学校举行运动会,学生们按编号(1、2、3…n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;对于身高体重都相同的人,维持原有的编号顺序关系。请输出排列后的学生编号。
输入描述
两个序列,每个序列由n个正整数组成(0 < n <= 100)。第一个序列中的数值代表身高,第二个序列中的数值代表体重。
输出描述
排列结果,每个数值都是原始序列中的学生编号,编号从1开始
题目解析
此问题要求按照一定的排序规则对学生进行重新排序,规则为:首先按照身高升序排列,身高相同的情况下再按照体重升序排列,若身高和体重都相同,则保留原始顺序。这可以通过自定义排序规则,利用稳定的排序算法(如归并排序、插入排序等)来实现,因为需要保持相同元素的原始顺序。
python算法代码
def sort_students(heights, weights