1 minute read

You are 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 Explanation: Changing the last digit 6 to 9 results in the maximum number. Example 3:

Input: num = 9999 Output: 9999 Explanation: It is better not to apply any change.

Constraints:

1 <= num <= 104 num consists of only 6 and 9 digits.

/**
 * @param {number} num
 * @return {number}
 */
var maximum69Number = function (num) {
  // Convert the given number to an array of digits
  const digits = Array.from(num.toString(), Number);

  // Iterate through each digit in the array
  for (let i = 0; i < digits.length; i++) {
    // Check if the current digit is 6
    if (digits[i] === 6) {
      // Replace 6 with 9 to maximize the number
      digits[i] = 9;
      // Convert the modified array back to a string and return it
      return digits.join("");
    }
  }
  // If no 6 is found, return the original number
  return num;
};

The time complexity is O(n), where d is the number of digits in the input number. The function iterates through each digit once, resulting in a linear time complexity.

The dominant factor contributing to space complexity is the creation of the digits array, and the overall space complexity is O(n).

Leave a comment