思路
遍历列表,dict1记录每一行的数据,dict2 记录k列数据以及对应的行
对k列数据进行降序排序dict2
根据排序后的dict2,依次获取对应行的数据
时间复杂度: O(nlogN)
代码
class Solution:def sortTheStudents(self, score: List[List[int]], k: int) -> List[List[int]]:#存储每一行数据dict1={}#存储K列数据以及对应的行 行:数据dict2={}for i in range(len(score)):dict1[i]=score[i]dict2[i]=score[i][k]#对k列数据进行排序dict2=dict(sorted(dict2.items(),key=lambda x:x[1],reverse=True ))re=[]#获取K列排序后的行的数据for i in dict2:re.append(dict1[i])return re
ps
上述为字典升序排序,若想根据值来进行降序排序,加上reverse=True即可,如:
dict2=dict(sorted(dict2.items(),key=lambda x:x[1],reverse=True ))