g2501_2600.s2578_split_with_minimum_sum.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g2501_2600.s2578_split_with_minimum_sum;
// #Easy #Math #Sorting #Greedy #2023_08_22_Time_0_ms_(100.00%)_Space_39.3_MB_(76.63%)
/**
* 2578 - Split With Minimum Sum\.
*
* Easy
*
* Given a positive integer `num`, split it into two non-negative integers `num1` and `num2` such that:
*
* * The concatenation of `num1` and `num2` is a permutation of `num`.
* * In other words, the sum of the number of occurrences of each digit in `num1` and `num2` is equal to the number of occurrences of that digit in `num`.
* * `num1` and `num2` can contain leading zeros.
*
* Return _the **minimum** possible sum of_ `num1` _and_ `num2`.
*
* **Notes:**
*
* * It is guaranteed that `num` does not contain any leading zeros.
* * The order of occurrence of the digits in `num1` and `num2` may differ from the order of occurrence of `num`.
*
* **Example 1:**
*
* **Input:** num = 4325
*
* **Output:** 59
*
* **Explanation:** We can split 4325 so that `num1` is 24 and num2 `is` 35, giving a sum of 59. We can prove that 59 is indeed the minimal possible sum.
*
* **Example 2:**
*
* **Input:** num = 687
*
* **Output:** 75
*
* **Explanation:** We can split 687 so that `num1` is 68 and `num2` is 7, which would give an optimal sum of 75.
*
* **Constraints:**
*
* * 10 <= num <= 109
**/
public class Solution {
public int splitNum(int number) {
int num1 = 0;
int num2 = 0;
boolean addToOne = true;
for (int i = 0; i <= 9; i++) {
int tmpNumber = number;
while (tmpNumber > 0) {
int digit = tmpNumber % 10;
if (digit == i) {
if (addToOne) {
num1 *= 10;
num1 += digit;
addToOne = false;
} else {
num2 *= 10;
num2 += digit;
addToOne = true;
}
}
tmpNumber /= 10;
}
}
return num1 + num2;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy