Skip to content

Commit 5a78300

Browse files
authored
Improved task 1679.
1 parent 8f3b4ed commit 5a78300

File tree

1 file changed

+16
-13
lines changed
  • src/main/java/g1601_1700/s1679_max_number_of_k_sum_pairs

1 file changed

+16
-13
lines changed
Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
package g1601_1700.s1679_max_number_of_k_sum_pairs;
22

33
// #Medium #Array #Hash_Table #Sorting #Two_Pointers
4+
// #2022_04_21_Time_22_ms_(85.31%)_Space_67.1_MB_(70.80%)
45

5-
import java.util.HashMap;
6-
import java.util.Map;
6+
import java.util.Arrays;
77

88
public class Solution {
99
public int maxOperations(int[] nums, int k) {
10-
Map<Integer, Integer> map = new HashMap<>();
11-
int ops = 0;
12-
for (int num : nums) {
13-
if (map.containsKey(k - num)) {
14-
map.put(k - num, map.get(k - num) - 1);
15-
ops++;
16-
if (map.get(k - num) == 0) {
17-
map.remove(k - num);
18-
}
10+
Arrays.sort(nums);
11+
int i = 0;
12+
int c = 0;
13+
int j = nums.length - 1;
14+
while (i < j) {
15+
int sum = nums[i] + nums[j];
16+
if (sum == k) {
17+
c++;
18+
i++;
19+
j--;
20+
} else if (sum > k) {
21+
j--;
1922
} else {
20-
map.put(num, map.getOrDefault(num, 0) + 1);
23+
i++;
2124
}
2225
}
23-
return ops;
26+
return c;
2427
}
2528
}

0 commit comments

Comments
 (0)