Appearance
2605. 从两个数字数组里生成最小数字
给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 ,每个数组中的元素 互不相同 ,请你返回 最小 的数字,两个数组都 至少 包含这个数字的某个数位。
示例 1:
输入:nums1 = [4,1,3], nums2 = [5,7]
输出:15
解释:数字 15 的数位 1 在 nums1 中出现,数位 5 在 nums2 中出现。15 是我们能得到的最小数字。
示例 2:
输入:nums1 = [3,5,2,6], nums2 = [3,1,7]
输出:3
解释:数字 3 的数位 3 在两个数组中都出现了。
提示:
1 <= nums1.length, nums2.length <= 9
1 <= nums1[i], nums2[i] <= 9
每个数组中,元素 互不相同 。
- 来源:力扣(LeetCode)
- 链接:https://leetcode.cn/problems/form-smallest-number-from-two-digit-arrays
javascript
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number}
*/
var minNumber = function (nums1, nums2) {
nums1.sort((a, b) => a - b)
nums2.sort((a, b) => a - b)
for (let i = 0; i < nums2.length; i++) {
if (nums1.includes(nums2[i])) {
return nums2[i]
}
}
return Math.min(nums1[0] * 10 + nums2[0], nums2[0] * 10 + nums1[0])
}
var minNumber = function (nums1, nums2) {
const arr = []
for (let i = 0; i < nums2.length; i++) {
if (nums1.includes(nums2[i])) {
arr.push(nums2[i])
}
}
if (arr.length > 0) {
return arr.sort((a, b) => a - b)[0]
}
const min1 = Math.min(...nums1)
const min2 = Math.min(...nums2)
return Math.min(min1 * 10 + min2, min2 * 10 + min1)
}
console.log(minNumber([4, 1, 3], [5, 7]) === 15)
console.log(minNumber([4, 1, 3], [5, 1, 3]) === 1)
console.log(minNumber([3, 5, 2, 6], [3, 1, 7]) === 3)