Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 9831a36

Browse files
solves #2605: Form Smallest Number From Two Digit Arrays in java
1 parent ed0d722 commit 9831a36

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed

‎README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,7 @@
810810
| 2591 | [Distribute Money to Maximum Children](https://leetcode.com/problems/distribute-money-to-maximum-children) | [![Java](assets/java.png)](src/DistributeMoneyToMaximumChildren.java) | |
811811
| 2595 | [Number of Even and Odd Bits](https://leetcode.com/problems/number-of-even-and-odd-bits) | [![Java](assets/java.png)](src/NumberOfEvenAndOddBits.java) | |
812812
| 2600 | [K Items With the Maximum Sum](https://leetcode.com/problems/k-items-with-the-maximum-sum) | [![Java](assets/java.png)](src/KItemsWithTheMaximumSum.java) | |
813-
| 2605 | [Form Smallest Number From Two Digit Arrays](https://leetcode.com/problems/form-smallest-number-from-two-digit-arrays) | | |
813+
| 2605 | [Form Smallest Number From Two Digit Arrays](https://leetcode.com/problems/form-smallest-number-from-two-digit-arrays) | [![Java](assets/java.png)](src/FormSmallestNumberFromTwoDigitArrays.java) | |
814814
| 2605 | [Form Smallest Number From Two Digit Arrays](https://leetcode.com/problems/form-smallest-number-from-two-digit-arrays) | | |
815815
| 2609 | [Find the Longest Balanced Substring of a Binary String](https://leetcode.com/problems/find-the-longest-balanced-substring-of-a-binary-string) | | |
816816
| 2614 | [Prime In Diagonal](https://leetcode.com/problems/prime-in-diagonal) | | |
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// https://leetcode.com/problems/form-smallest-number-from-two-digit-arrays
2+
// T: O(N log(N) + M log(M))
3+
// S: O(log(N) + log(M))
4+
5+
import java.util.Arrays;
6+
import java.util.HashSet;
7+
import java.util.Set;
8+
9+
public class FormSmallestNumberFromTwoDigitArrays {
10+
public int minNumber(int[] nums1, int[] nums2) {
11+
final Set<Integer> intersection = intersection(nums1, nums2);
12+
13+
if (!intersection.isEmpty()) {
14+
final int[] digits = toArray(intersection);
15+
Arrays.sort(digits);
16+
return digits[0];
17+
}
18+
19+
Arrays.sort(nums1);
20+
Arrays.sort(nums2);
21+
final int smallerDigit = Math.min(nums1[0], nums2[0]);
22+
final int largerDigit = Math.max(nums1[0], nums2[0]);
23+
return smallerDigit * 10 + largerDigit;
24+
}
25+
26+
private Set<Integer> intersection(int[] array1, int[] array2) {
27+
final Set<Integer> set1 = toSet(array1);
28+
final Set<Integer> set2 = toSet(array2);
29+
return intersection(set1, set2);
30+
}
31+
32+
private Set<Integer> toSet(int[] array) {
33+
final Set<Integer> set = new HashSet<>();
34+
for (int element : array) {
35+
set.add(element);
36+
}
37+
return set;
38+
}
39+
40+
private Set<Integer> intersection(Set<Integer> set1, Set<Integer> set2) {
41+
final Set<Integer> set = new HashSet<>();
42+
for (int element : set1) {
43+
if (set2.contains(element)) {
44+
set.add(element);
45+
}
46+
}
47+
return set;
48+
}
49+
50+
private int[] toArray(Set<Integer> set) {
51+
final int[] array = new int[set.size()];
52+
int index = 0;
53+
for (int element : set) {
54+
array[index++] = element;
55+
}
56+
return array;
57+
}
58+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /