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
        }
    }
  • 相关阅读:
    前端开发——HTML学习笔记
    前端开发——HTML学习笔记
    前端开发——HTML学习笔记
    日记2018/1/4
    物联网概念
    安卓常见英文缩写的全拼
    快速排序和计数排序API
    Hash表API
    栈/队列API(push和pop)
    链表API实现(插入,删除,查找)
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/13161004.html
Copyright © 2011-2022 走看看