Form Smallest Number From Two Digit Arrays

EasyArrayHash TableEnumeration

Solution

export function minNumber(nums1: number[], nums2: number[]): number {
  const min1 = min(nums1);
  const min2 = min(nums2);
  const intersection = intersect(new Set(nums1), new Set(nums2));
  if (intersection.length === 0) {
    return Math.min(min1, min2) * 10 + Math.max(min1, min2);
  }
  return min(intersection);
}
 
function min(nums: number[]) {
  return nums.reduce((prev, num) => (prev < num ? prev : num), Number.MAX_SAFE_INTEGER);
}
 
function intersect(set1: Set<number>, set2: Set<number>) {
  return [...set1].filter((num) => set2.has(num));
}