美文网首页
670. 最大交换

670. 最大交换

作者: 编程小王子AAA | 来源:发表于2020-08-11 14:31 被阅读0次

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

示例 1 :

输入: 2736
输出: 7236
解释: 交换数字2和数字7。
示例 2 :

输入: 9973
输出: 9973
解释: 不需要交换。


class Solution {
    public int maximumSwap(int num) {
        char[] c = String.valueOf(num).toCharArray();
        int max = Integer.MIN_VALUE;
        int max_index = 0;
        int [] arr = new int[c.length];
        arr[c.length - 1] = c.length - 1;
        
        for (int i = c.length - 1; i >= 0; i --) {
            if (c[i] - '0' > max) {
                max = c[i] - '0';
                max_index = i;
            }
            arr[i] = max_index;
        }
        for (int i = 0; i < c.length; i ++) {
            if (arr[i] != i && c[arr[i]] != c[i]) {
                char tmp = c[i];
                c[i] = c[arr[i]];
                c[arr[i]] = tmp;
                break;
            }
        }
        return Integer.parseInt(new String(c));
    }
}

相关文章

  • 670. 最大交换

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

  • 670. 最大交换

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

  • 最大交换

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

  • 排序

    找出最大的位置 交换

  • 670. 树

    无论阳光怎么不离不弃绿叶还是红叶在西北风刮起时或者已从衰微中逝去 无论严寒怎么恐吓肆虐躯干还是枯枝一触碰洁白的雪花...

  • 670.除夕

    今天是除夕。 早上起床,开车回老家给老妈拿东西。按照老爸列的清单,逐个在各个房间里找。白菜、胡萝卜、白萝卜、葱、蒜...

  • 670.躲避

    时间过得很快,渐渐来到清明时节,润叶想想过节,又得收到二妈和李向前家的摧残,想着去找同学丽丽,于是下午吃了饭,便给...

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

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

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

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

  • LintCode 最大的交换数

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

网友评论

      本文标题:670. 最大交换

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