All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g0601_0700.s0670_maximum_swap.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
package g0601_0700.s0670_maximum_swap;

// #Medium #Math #Greedy #2022_03_22_Time_1_ms_(80.14%)_Space_40.7_MB_(57.21%)

/**
 * 670 - Maximum Swap\.
 *
 * Medium
 *
 * You are given an integer `num`. You can swap two digits at most once to get the maximum valued number.
 *
 * Return _the maximum valued number you can get_.
 *
 * **Example 1:**
 *
 * **Input:** num = 2736
 *
 * **Output:** 7236
 *
 * **Explanation:** Swap the number 2 and the number 7.
 *
 * **Example 2:**
 *
 * **Input:** num = 9973
 *
 * **Output:** 9973
 *
 * **Explanation:** No swap.
 *
 * **Constraints:**
 *
 * *   0 <= num <= 108
**/
public class Solution {
    public int maximumSwap(int num) {
        char[] chars = String.valueOf(num).toCharArray();
        for (int i = 0; i < chars.length; i++) {
            int j = chars.length - 1;
            int indx = i;
            char c = chars[i];
            while (j > i) {
                if (chars[j] > c) {
                    c = chars[j];
                    indx = j;
                }
                j--;
            }
            if (indx != i) {
                char temp = chars[i];
                chars[i] = chars[indx];
                chars[indx] = temp;
                return Integer.parseInt(String.valueOf(chars));
            }
        }
        return num;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy