Skip to content
On this page

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
每个数组中,元素 互不相同 。

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)