• 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
        }
    }
  • 相关阅读:
    redis
    基础加强(@注解)
    过滤器Filter
    监听器
    ajax
    Java 常用类Math、System、时间相关Calender和Date
    Java Object、Scanner、String 、生成jar包
    Java 内部类、eclipse、包
    Java 面向对象之抽象
    Java 面向对象三大特征之多态
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13161004.html
Copyright © 2020-2023  润新知