排序——最大数

题目描述

给定一个数组由一些非负整数组成,现需要将他们进行排列并拼接,使得最后的结果最大,返回值需要是string类型 否则可能会溢出

解题思路

1. 先对列表进行降序排序
2.将列表中的值分别转换成string类型
3.对比当前元素和下一个相邻元素两两交换位置的合并值 ,如果相邻的元素在前可以使数更大,则交换两个元素的位置,以此类推,依此比较数组中的元素,如下图所示:
图片说明
4.最后直到将所有元素排好序,循环结束。

5.需要注意的是,如果排序好的数组的第一个元素是0,则直接返回0。

核心代码

# nums = [3,30,34,5,9]
def findMax(nums):
    if not nums:
        return
    nums.sort(reverse = True)
    map(str,nums) #将数组中的值映射为str
    
    for i in range(0,len(nums)-1):
        for j in range(0,len(nums)-1-i):
            if int(nums[j+1]+nums[j])>int(nums[j]+nums[j+1]):
                nums[j],nums[j+1] = nums[j+1],nums[j]
    if nums[0] == '0':
        return '0'
    return ''.join(nums)


注意!此信息未认证,请谨慎判断信息的真实性!

全部评论
空

相关内容推荐

头像 头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 评论 收藏
转发
头像
点赞 评论 收藏
转发
点赞 收藏 评论
分享

全站热榜

正在热议