博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode179. Largest Number(思路及python解法)
阅读量:2242 次
发布时间:2019-05-09

本文共 791 字,大约阅读时间需要 2 分钟。

Given a list of non negative integers, arrange them such that they form the largest number.

Example 1:

Input: [10,2]Output: "210"

Example 2:

Input: [3,30,34,5,9]Output: "9534330"

将数组中的数组合成一个新的数,使新的数最大。

一开始没什么思路,看了discuss才想明白。

其实关键在于如何排序,也就是compare这个函数将两个数进行排序。比如[10,2],组合就是“102”和“210”两种。

按照这个思路把整个数组重新排序一遍即可。为了避免多个0在一起,如果第一个字符为0则直接返回0。

至于两个for循环就是一个冒泡排序方法,用什么排序都可以。

class Solution:    def largestNumber(self, nums: List[int]) -> str:                for i in range(len(nums)):            for j in range(len(nums)-i-1):                if self.compare(nums[j+1],nums[j]):                    nums[j], nums[j+1] = nums[j+1], nums[j]        res=''.join(map(str,nums))        return '0' if res[0]=='0' else res                def compare(self, n1, n2):        return str(n1)+str(n2)>str(n2)+str(n1)

 

转载地址:http://gcrbb.baihongyu.com/

你可能感兴趣的文章
Linux 查看文件大小
查看>>
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>
Java多线程学习
查看>>
检查Linux服务器性能
查看>>
Java 8新的时间日期库
查看>>
Chrome开发者工具
查看>>
【LEETCODE】102-Binary Tree Level Order Traversal
查看>>
【LEETCODE】106-Construct Binary Tree from Inorder and Postorder Traversal
查看>>
【LEETCODE】202-Happy Number
查看>>
和机器学习和计算机视觉相关的数学
查看>>
十个值得一试的开源深度学习框架
查看>>
【LEETCODE】240-Search a 2D Matrix II
查看>>
【LEETCODE】53-Maximum Subarray
查看>>
【LEETCODE】215-Kth Largest Element in an Array
查看>>
【LEETCODE】241-Different Ways to Add Parentheses
查看>>
【LEETCODE】312-Burst Balloons
查看>>
【LEETCODE】232-Implement Queue using Stacks
查看>>
【LEETCODE】225-Implement Stack using Queues
查看>>
【LEETCODE】155-Min Stack
查看>>