美文网首页
LeetCode&Python 846. 多关键字排序

LeetCode&Python 846. 多关键字排序

作者: 长在香蕉树上的猫 | 来源:发表于2019-02-28 21:47 被阅读0次

描述

给定 n 个学生的学号(从 1 到 n 编号)以及他们的考试成绩,表示为(学号,考试成绩),请将这些学生按考试成绩降序排序,若考试成绩相同,则按学号升序排序。

Example

样例1

输入: array = [[2,50],[1,50],[3,100]]

输出: [[3,100],[1,50],[2,50]]

样例2

输入: array = [[2,50],[1,50],[3,50]]

输出: [[1,50],[2,50],[3,50]]


Python:

class Solution:

  def multiSort(self, array):

    for i in range(len(array)-1):

        for j in range(len(array)-1-i):

            if array[j][1] < array[j+1][1]:

                array[j], array[j+1] = array[j+1], array[j]

            elif array[j][1] == array[j+1][1]:

                if array[j][0] > array[j+1][0]:

                    array[j], array[j+1] = array[j+1], array[j]

        return array

这个问题是EASY级别的,思路就是先按第二列冒泡排序,若遇到相同的再比较第一列。

Python里还有个偷懒的方法,一行搞定,那就是用lambda函数啦~

class Solution:

    def multiSort(self, array):

        a = sorted(array,key=lambda x: (-x[1],x[0])) 

    return a 

相关文章

  • LeetCode&Python 846. 多关键字排序

    描述 给定n个学生的学号(从1到n编号)以及他们的考试成绩,表示为(学号,考试成绩),请将这些学生按考试成绩降序排...

  • 基数排序

    基数排序是一种借助多关键字排序思想对单逻辑关键字进行排序的方法。 所谓的多关键字排序就是有多个优先级不同的关键字。...

  • 排序

    定义 多个关键字的排序最终可以转化为单个关键字的排序 排序的稳定性 不稳定:记录a与记录b的排序相同,排序...

  • 基数排序

    基数排序(Radix Sort) 计数排序和桶排序都只是在研究一个关键字的排序,现在我们来讨论有多个关键字的排序问...

  • 【数据结构】【C#】015-插入类排序:🥉希尔排序(不稳定)

    插入排序:希尔排序(不稳定) 【算法改进要点 】 直接插入排序法,在待排序的关键字序列基本有序且关键字个数 n 较...

  • 01排序

    一.多个关键字的排序可以转化为单个关键字的排序 二.分数相等的人A和B,排序之前A在B前,排序后A仍在B前,则此排...

  • 简单选择排序

    选择排序的初步思想:在排序时找到合适的关键字再做交换,并且只移动一次就完成相应关键字的排序定位工作。 简单选择排序...

  • 数据结构与算法-排序的基本概念与分类

    排序的稳定性 由于排序不仅是针对主关键字,那么对于次关键字,因为待排序的记录序列中可能存在两个或两个以上的关键字相...

  • sorted 对 tuple 集合 使用关键字排序

    1. lamda关键字设置排序 2. operator 函数 加快排序

  • 排序、limit、统计、分组、多表关联、嵌套

    排序 关键字 order by 单字段排序格式select * from where 条件 order by 字段...

网友评论

      本文标题:LeetCode&Python 846. 多关键字排序

      本文链接:https://www.haomeiwen.com/subject/dklluqtx.html