1881. Maximum Value after Insertion LeetCode Solution

In this guide, you will get 1881. Maximum Value after Insertion LeetCode Solution with the best time and space complexity. The solution to Maximum Value after Insertion problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.

Table of Contents

  1. Problem Statement
  2. Complexity Analysis
  3. Maximum Value after Insertion solution in C++
  4. Maximum Value after Insertion solution in Java
  5. Maximum Value after Insertion solution in Python
  6. Additional Resources
1881. Maximum Value after Insertion LeetCode Solution image

Problem Statement of Maximum Value after Insertion

You are given a very large integer n, represented as a string,​​​​​​ and an integer digit x. The digits in n and the digit x are in the inclusive range [1, 9], and n may represent a negative number.
You want to maximize n’s numerical value by inserting x anywhere in the decimal representation of n​​​​​​. You cannot insert x to the left of the negative sign.

For example, if n = 73 and x = 6, it would be best to insert it between 7 and 3, making n = 763.
If n = -55 and x = 2, it would be best to insert it before the first 5, making n = -255.

Return a string representing the maximum value of n​​​​​​ after the insertion.

Example 1:

Input: n = “99”, x = 9
Output: “999”
Explanation: The result is the same regardless of where you insert 9.

Example 2:

Input: n = “-13”, x = 2
Output: “-123”
Explanation: You can make n one of {-213, -123, -132}, and the largest of those three is -123.

See also  1351. Count Negative Numbers in a Sorted Matrix LeetCode Solution

Constraints:

1 <= n.length <= 105
1 <= x <= 9
The digits in n​​​ are in the range [1, 9].
n is a valid representation of an integer.
In the case of a negative n,​​​​​​ it will begin with '-'.

Complexity Analysis

  • Time Complexity: O(n)
  • Space Complexity: O(n)

1881. Maximum Value after Insertion LeetCode Solution in C++

class Solution {
 public:
  string maxValue(string n, int x) {
    bool isNegative = n[0] == '-';

    for (int i = 0; i < n.length(); ++i)
      if (!isNegative && n[i] - '0' < x || isNegative && n[i] - '0' > x)
        return n.substr(0, i) + (char)('0' + x) + n.substr(i);

    return n + (char)('0' + x);
  }
};
/* code provided by PROGIEZ */

1881. Maximum Value after Insertion LeetCode Solution in Java

class Solution {
  public String maxValue(String n, int x) {
    boolean isNegative = n.charAt(0) == '-';

    for (int i = 0; i < n.length(); ++i)
      if (!isNegative && n.charAt(i) - '0' < x || isNegative && n.charAt(i) - '0' > x)
        return n.substring(0, i) + x + n.substring(i);

    return n + x;
  }
}
// code provided by PROGIEZ

1881. Maximum Value after Insertion LeetCode Solution in Python

class Solution:
  def maxValue(self, n: str, x: int) -> str:
    isNegative = n[0] == '-'

    for i, c in enumerate(n):
      if not isNegative and int(c) < x or isNegative and int(c) > x:
        return n[:i] + str(x) + n[i:]

    return n + str(x)
# code by PROGIEZ

Additional Resources

Happy Coding! Keep following PROGIEZ for more updates and solutions.