LeetCode 1323:Maximum 69 Number

LeetCode:1323
標籤:Math
難度:Easy

 

public class LeetCode1323 {
	/*
	 * 1323. Maximum 69 Number
	 * Given a positive integer num consisting only of digits 6 and 9.
	 * Return the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).
	 * 
	 * Example 1:
	 * Input: num = 9669
	 * Output: 9969
	 * Explanation: 
	 * Changing the first digit results in 6669.
	 * Changing the second digit results in 9969.
	 * Changing the third digit results in 9699.
	 * Changing the fourth digit results in 9666. 
	 * The maximum number is 9969.
	 * 
	 * Example 2:
	 * Input: num = 9996
	 * Output: 9999
	 * 
	 * Example 3:
	 * Input: num = 9999
	 * Output: 9999
	 */
	
    public static void main(String[] args) {
        int res = maximum69Number(9999);
        System.out.println(res);
    }

    public static int maximum69Number (int num) {
    	List<Integer> list = new ArrayList<Integer>();
        char[] numCharArray = String.valueOf(num).toCharArray();
        for(int i = 0 ; i < numCharArray.length ; i++) {
        	if(i == 0) {
        		numCharArray[i] = numCharArray[i] == '9' ? '6' : '9';
        		list.add(Integer.valueOf(new String(numCharArray)));
        	} else {
        		numCharArray[i] = numCharArray[i] == '9' ? '6' : '9';
        		numCharArray[i-1] = numCharArray[i-1] == '9' ? '6' : '9';
        		list.add(Integer.valueOf(new String(numCharArray)));
        	}
        }
        
        for(Integer number : list) {
        	if(number > num) {
        		num = number;
        	}
        }
    	return num; 
    }
}