代码拉取完成,页面将自动刷新
同步操作将从 doocs/leetcode 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
给你一个四位 正 整数 num
。请你使用 num
中的 数位 ,将 num
拆成两个新的整数 new1
和 new2
。new1
和 new2
中可以有 前导 0 ,且 num
中 所有 数位都必须使用。
num = 2932
,你拥有的数位包括:两个 2
,一个 9
和一个 3
。一些可能的 [new1, new2]
数对为 [22, 93]
,[23, 92]
,[223, 9]
和 [2, 329]
。请你返回可以得到的 new1
和 new2
的 最小 和。
示例 1:
输入:num = 2932 输出:52 解释:可行的 [new1, new2] 数对为 [29, 23] ,[223, 9] 等等。 最小和为数对 [29, 23] 的和:29 + 23 = 52 。
示例 2:
输入:num = 4009 输出:13 解释:可行的 [new1, new2] 数对为 [0, 49] ,[490, 0] 等等。 最小和为数对 [4, 9] 的和:4 + 9 = 13 。
提示:
1000 <= num <= 9999
class Solution:
def minimumSum(self, num: int) -> int:
nums = []
while num:
nums.append(num % 10)
num //= 10
nums.sort()
return 10 * (nums[0] + nums[1]) + nums[2] + nums[3]
class Solution {
public int minimumSum(int num) {
int[] nums = new int[4];
for (int i = 0; num != 0; ++i) {
nums[i] = num % 10;
num /= 10;
}
Arrays.sort(nums);
return 10 * (nums[0] + nums[1]) + nums[2] + nums[3];
}
}
class Solution {
public:
int minimumSum(int num) {
vector<int> nums;
while (num) {
nums.push_back(num % 10);
num /= 10;
}
sort(nums.begin(), nums.end());
return 10 * (nums[0] + nums[1]) + nums[2] + nums[3];
}
};
func minimumSum(num int) int {
var nums []int
for num > 0 {
nums = append(nums, num%10)
num /= 10
}
sort.Ints(nums)
return 10*(nums[0]+nums[1]) + nums[2] + nums[3]
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。