zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 670 最大交换(暴力)

    670. 最大交换

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

    示例 1 :

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

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

    给定数字的范围是 [0, 108]

    class Solution {
           public int maximumSwap(int num) {
            if(num<10) return num;
            int[] nums = new int[9];
            int size=0;
            while(num !=0){
                nums[size++] = num%10;
                num = num/10;
            }
    
            for(int tmp = size-1;tmp>=0;tmp--){
                int max = -1;
                int point = -1;
                for(int j = tmp-1;j>=0;j--){
                    if(nums[j] >= max){
                        max = nums[j];
                        point = j;
                    }
                }
                if(max > nums[tmp]){
                    swap(nums, point, tmp);
                    break;
                }
            }
    
            int sum = 0;
            for(int i =size-1;i>=0;i--){
                sum = sum*10 + nums[i];
            }
            return sum;
        }
    private static void swap (int[] arr, int l, int r) {
        int temp = arr[l];
        arr[l] = arr[r];
        arr[r] = temp;
    }
    }
    
  • 相关阅读:
    JSON和Object数组在js中的转换
    Raphael绘制箭头arrow
    Web后台框架开发
    数据库开发
    docker
    git
    linux
    正则表达式工具
    python模拟ls命令
    python3基础
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074821.html
Copyright © 2011-2022 走看看