zoukankan      html  css  js  c++  java
  • 670. Maximum Swap

    package LeetCode_670
    
    /**
     * 670. Maximum Swap
     * https://leetcode.com/problems/maximum-swap/description/
     *
     * Given a non-negative integer, you could swap two digits at most once to get the maximum valued number.
     * Return the maximum valued number you could get.
    
    Example 1:
    Input: 2736
    Output: 7236
    Explanation: Swap the number 2 and the number 7.
     * */
    class Solution {
        fun maximumSwap(num: Int): Int {
            val numString = num.toString()
            var leftIndex = -1
            var rightIndex = -1
            var maxNum = -1
            var maxIndex = -1
            for (i in numString.length - 1 downTo 0) {
                if (maxNum < numString[i].toInt()) {
                    maxNum = numString[i].toInt()
                    maxIndex = i
                }
                if (maxNum > numString[i].toInt()) {
                    leftIndex = i
                    rightIndex = maxIndex
                }
            }
            if (leftIndex == -1) {//for example: 9973
                return num
            }
            val chars = numString.toCharArray()
            swap(chars, leftIndex, rightIndex)
            return arrayToNum(chars)
        }
    
        private fun arrayToNum(array: CharArray): Int {
            var result = 0
            for (item in array) {
                if (item.equals("")) {
                    continue
                }
                result *= 10
                result += (item.toInt() - '0'.toInt())
            }
            return result
        }
    
        private fun swap(str: CharArray, start: Int, end: Int) {
            val temp = str[end]
            str[end] = str[start]
            str[start] = temp
        }
    }
  • 相关阅读:
    python2的比较函数,cmp
    快速排序
    如果a,b,c为自然数,a+b+c=1000,a方+b方=c方,求出abc可能的组合(python实现)
    python之join
    python之functools partial
    Python 3 iter函数用法简述
    python线程之condition
    python 线程 event
    getattr getattribute setattr hasattr delattr
    Properties类
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13161004.html
Copyright © 2011-2022 走看看