微信朋友圈推广,seo网站源码,网站建设 十佳制作,企业解决方案马车陷进泥坑无法前进该怎么办?题目#xff1a; 给定一组非负整数 nums#xff0c;重新排列每个数的顺序#xff08;每个数不可拆分#xff09;使之组成一个最大的整数。 注意#xff1a;输出结果可能非常大#xff0c;所以你需要返回一个字符串而不是整数。 来源#xff1a;力扣#xff08;LeetCode… 题目 给定一组非负整数 nums重新排列每个数的顺序每个数不可拆分使之组成一个最大的整数。 注意输出结果可能非常大所以你需要返回一个字符串而不是整数。 来源力扣LeetCode 链接力扣LeetCode官网 - 全球极客挚爱的技术成长平台 示例 示例 1 输入nums [10, 2] 输出210 示例 2 输入nums [3, 30, 34, 5, 9] 输出9534330 解法 自定义排序规则。 知识点 1.sorted(iterable, cmpNone, keyNone, reverseFalse)此语法针对Python2在Python3中cmp参数被移除需要在key的地方传入functools.cmp_to_key函数。根据sorted的机制cmp传入之后会根据传入的自定义函数排序类似于冒泡排序。自定义函数需要指定x1 x2时返回-1x1 x2时返回1x1 x2时返回0最后根据规则返回升序结果。例如传入的自定义函数如下 def cmp(x1, x2):if str(x1) str(x2) str(x2) str(x1):return 1elif str(x1) str(x2) str(x2) str(x1):return -1else:return 0 将两数以字符串形式拼接比较大小最后将以升序形式返回拼接结果最大的列表将列表中每个数连起来就是结果。排序做的相当于两两比较str(x1) str(x2)和str(x2) str(x1)的关系将小的放前面大的放后面。 2.functools.cmp_to_keycallable将比较函数转化为关键字函数。callable是函数名。传入的函数接受2个参数比较这2个参数例如xy 当x y时返回1小于时返回-1否则返回0。 代码 from functools import cmp_to_keyclass Solution:def largestNumber(self, nums: List[int]) - str:def cmp(x1, x2):if str(x1) str(x2) str(x2) str(x1):return 1elif str(x1) str(x2) str(x2) str(x1):return -1else:return 0nums.sort(keycmp_to_key(cmp), reverseTrue)return str(int(.join(map(str, nums))))