一、题目
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
示例 1:
输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
示例 2:
输入:nums = []
输出:[]
示例 3:
输入:nums = [0]
输出:[]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/3sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
二,出现的问题
字符串按位比较,两个字符串第一位字符的ascii码谁大,字符串就大,不再比较后面的;第一个字符相同就比第二个字符串,因此我们可以把数字转化成字符串然后排序。
但是这样会有一个问题
因此我们需要自定义比较规则
def comp(a,b):
if (a+b)>(b+a):
return 1
if (a+b)<(b+a):
return -1
return 0
四、最终代码
class Solution:
def largestNumber(self, nums: List[int]) -> str:
list1 = [str(i) for i in nums]
def comp(a,b):
if (a+b)>(b+a):
return 1
if (a+b)<(b+a):
return -1
return 0
list1.sort(reverse=True)
return str(int("".join(list1)))