Medium
You are given two positive integers num and sum.
A positive integer n is good if it satisfies both of the following:
n is exactly num.n is exactly sum.The score of a good integer n is the sum of the squares of digits in n.
Return a string denoting the good integer n that achieves the maximum score. If there are multiple possible integers, return the maximum one. If no such integer exists, return an empty string.
Example 1:
Input: num = 2, sum = 3
Output: “30”
Explanation:
There are 3 good integers: 12, 21, and 30.
12 + 22 = 5.22 + 12 = 5.32 + 02 = 9.The maximum score is 9, which is achieved by the good integer 30. Therefore, the answer is "30".
Example 2:
Input: num = 2, sum = 17
Output: “98”
Explanation:
There are 2 good integers: 89 and 98.
82 + 92 = 145.92 + 82 = 145.The maximum score is 145. The maximum good integer that achieves this score is 98. Therefore, the answer is "98".
Example 3:
Input: num = 1, sum = 10
Output: “”
Explanation:
There are no integers that have exactly 1 digit and whose digits sum to 10. Therefore, the answer is "".
Constraints:
1 <= num <= 2 * 1051 <= sum <= 2 * 106public class Solution {
public String maxSumOfSquares(int places, int sum) {
String ans = "";
int nines = sum / 9;
if (places < nines) {
return ans;
} else if (places == nines) {
int remSum = sum - nines * 9;
if (remSum > 0) {
return ans;
}
ans = "9".repeat(nines);
} else {
int remSum = sum - nines * 9;
ans = "9".repeat(nines) + remSum;
int extra = places - ans.length();
if (extra > 0) {
ans = ans + ("0".repeat(extra));
}
}
return ans;
}
}