美文网首页
1095.最大的交换

1095.最大的交换

作者: 八菜冰 | 来源:发表于2018-12-18 00:13 被阅读0次
  • Description
    给定一个非负整数,你可以交换两个数位至多一次来获得最大的合法的数。返回最大的合法的你能够获得的数。
  • Samples:
    输入: 9973
    输出: 9973
    解释: 不用交换.
    输入: 2736
    输出: 7236
    解释: 交换数字2和数字7.
  • Solution
    先将数的每一位转换为数组,再设置2个参考点From、To,判断是否能交换,再输出。
class Solution:
    """
    @param num: a non-negative intege
    @return: the maximum valued number
    """
    def maximumSwap(self, num):
        # Write your code here
        if num<=10:
            return num
        nums = []
        if num==0:
            nums.append(0)
        while num!=0:
            nums.append(num%10)
            num = num//10
        From,Max = 0, nums[0]
        To, Max_index = 0, 0
        for i in range(1,len(nums)):
            if Max < nums[i]:
                Max = nums[i]
                Max_index = i
            elif Max > nums[i]:
                From = Max_index
                To = i
        if To!=0:
            nums[From],nums[To] = nums[To],nums[From]
        res = 0
        for k in range(len(nums)):
            res = res + nums[k]*10**k
        return res
#        return nums

相关文章

  • 1095.最大的交换

    Description给定一个非负整数,你可以交换两个数位至多一次来获得最大的合法的数。返回最大的合法的你能够获得...

  • 最大交换

    i从高到低遍历,尝试与右边比它最大的数当中离它最远的那个交换。

  • 排序

    找出最大的位置 交换

  • LintCode 最大的交换数

    题目给定一个非负整数,你可以交换两个数位至多一次来获得最大的合法的数。返回最大的合法的你能够获得的数。 第一版:最...

  • 670. 最大交换

    给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736输出:...

  • 670. 最大交换

    【Description】给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 ...

  • 《优势谈判实操作手册》读书心得

    全书就讲了两个字“交换”。谈判的核心是“交换”,目标是用最小的代价换取最大的利益,而且是整体利益的最大化。 ...

  • 非网管交换机和网管交换机的区别

    顾名思义,非网管交换机就是简单的交换机,又称傻瓜交换机。网管交换机,我更愿意称它是智能交换机,他们最大区别就是非网...

  • 2018-04-19

    1095.感恩二宝很轻松的入睡。 1096.感恩大大的床,让我们的身体得到很好的舒展。 1097.感恩可以在妈妈家...

  • 《前端面试题》- 编程题- 数字交换一次得到最大的数字

    输入一个数字(整数),交换两位数字,最多交换一次,输出可以得到的最大的数字,如输入:1234交换1,4后,得到4231;

网友评论

      本文标题:1095.最大的交换

      本文链接:https://www.haomeiwen.com/subject/hpnhkqtx.html