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 164aeec

Browse files
committed
Updated tags 224-918
1 parent 489dbd1 commit 164aeec

File tree

16 files changed

+107
-45
lines changed

16 files changed

+107
-45
lines changed

‎src/main/java/g0201_0300/s0224_basic_calculator/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0201_0300.s0224_basic_calculator;
22

33
// #Hard #String #Math #Stack #Recursion #Top_Interview_150_Stack
4-
// #2022_07_04_Time_3_ms_(98.92%)_Space_44.6_MB_(43.19%)
4+
// #2025_03_09_Time_2_ms_(96.52%)_Space_45.07_MB_(23.63%)
55

66
public class Solution {
77
private int i = 0;

‎src/main/java/g0201_0300/s0228_summary_ranges/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package g0201_0300.s0228_summary_ranges;
22

3-
// #Easy #Array #Top_Interview_150_Intervals #2022_07_04_Time_0_ms_(100.00%)_Space_42.7_MB_(15.43%)
3+
// #Easy #Array #Top_Interview_150_Intervals #2025_03_09_Time_0_ms_(100.00%)_Space_41.53_MB_(90.54%)
44

55
import java.util.ArrayList;
66
import java.util.List;

‎src/main/java/g0201_0300/s0242_valid_anagram/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Easy #String #Hash_Table #Sorting #Data_Structure_I_Day_6_String
44
// #Programming_Skills_I_Day_11_Containers_and_Libraries #Udemy_Strings #Top_Interview_150_Hashmap
5-
// #2022_07_05_Time_2_ms_(99.01%)_Space_42.4_MB_(91.86%)
5+
// #2025_03_09_Time_2_ms_(97.76%)_Space_43.41_MB_(66.14%)
66

77
public class Solution {
88
public boolean isAnagram(String s, String t) {

‎src/main/java/g0201_0300/s0289_game_of_life/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0201_0300.s0289_game_of_life;
22

33
// #Medium #Array #Matrix #Simulation #Top_Interview_150_Matrix
4-
// #2022_07_06_Time_0_ms_(100.00%)_Space_42.9_MB_(10.73%)
4+
// #2025_03_09_Time_0_ms_(100.00%)_Space_41.90_MB_(24.53%)
55

66
public class Solution {
77
public void gameOfLife(int[][] board) {

‎src/main/java/g0201_0300/s0290_word_pattern/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0201_0300.s0290_word_pattern;
22

33
// #Easy #String #Hash_Table #Data_Structure_II_Day_7_String #Top_Interview_150_Hashmap
4-
// #2022_07_06_Time_1_ms_(97.26%)_Space_40.4_MB_(85.78%)
4+
// #2025_03_09_Time_0_ms_(100.00%)_Space_41.27_MB_(92.07%)
55

66
import java.util.HashMap;
77
import java.util.Map;
Lines changed: 92 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,104 @@
11
package g0301_0400.s0373_find_k_pairs_with_smallest_sums;
22

33
// #Medium #Array #Heap_Priority_Queue #Top_Interview_150_Heap
4-
// #2022_07_12_Time_59_ms_(46.79%)_Space_120.7_MB_(83.25%)
4+
// #2025_03_09_Time_0_ms_(100.00%)_Space_57.66_MB_(90.88%)
55

6+
import java.util.AbstractList;
67
import java.util.ArrayList;
8+
import java.util.Arrays;
79
import java.util.List;
8-
import java.util.PriorityQueue;
910

1011
public class Solution {
11-
private static class Node {
12-
long sum;
13-
List<Integer> al;
14-
int index;
15-
16-
Node(int index, int num1, int num2) {
17-
this.sum = (long) num1 + (long) num2;
18-
this.al = new ArrayList<>();
19-
this.al.add(num1);
20-
this.al.add(num2);
21-
this.index = index;
22-
}
23-
}
24-
2512
public List<List<Integer>> kSmallestPairs(int[] nums1, int[] nums2, int k) {
26-
PriorityQueue<Node> queue = new PriorityQueue<>((a, b) -> a.sum < b.sum ? -1 : 1);
27-
List<List<Integer>> res = new ArrayList<>();
28-
for (int i = 0; i < nums1.length && i < k; i++) {
29-
queue.add(new Node(0, nums1[i], nums2[0]));
30-
}
31-
for (int i = 1; i <= k && !queue.isEmpty(); i++) {
32-
Node cur = queue.poll();
33-
res.add(cur.al);
34-
int next = cur.index;
35-
int lastNum1 = cur.al.get(0);
36-
if (next + 1 < nums2.length) {
37-
queue.add(new Node(next + 1, lastNum1, nums2[next + 1]));
13+
return new AbstractList<List<Integer>>() {
14+
private List<List<Integer>> pairs;
15+
16+
@Override
17+
public List<Integer> get(int index) {
18+
init();
19+
return pairs.get(index);
20+
}
21+
22+
@Override
23+
public int size() {
24+
init();
25+
return pairs.size();
26+
}
27+
28+
private void load() {
29+
int n = nums1.length;
30+
int m = nums2.length;
31+
int left = nums1[0] + nums2[0];
32+
int right = nums1[n - 1] + nums2[m - 1];
33+
int middle;
34+
35+
while (left <= right) {
36+
middle = (left + right) / 2;
37+
long count = getCount(nums1, nums2, middle, k);
38+
if (count < k) {
39+
left = middle + 1;
40+
} else if (count > k) {
41+
right = middle - 1;
42+
} else {
43+
left = middle;
44+
break;
45+
}
46+
}
47+
getPairs(nums1, nums2, left, k);
48+
}
49+
50+
private long getCount(int[] nums1, int[] nums2, int goal, int k) {
51+
int prevRight = nums2.length - 1;
52+
int count = 0;
53+
54+
for (int i = 0; i < nums1.length && nums1[i] + nums2[0] <= goal; i++) {
55+
int left = 0;
56+
int right = prevRight;
57+
int position = -1;
58+
while (left <= right) {
59+
int middle = (right + left) / 2;
60+
int sum = nums1[i] + nums2[middle];
61+
if (sum <= goal) {
62+
position = middle;
63+
left = middle + 1;
64+
} else {
65+
right = middle - 1;
66+
}
67+
}
68+
if (position >= 0) {
69+
count += position + 1;
70+
prevRight = position;
71+
}
72+
if (count > k) {
73+
return count;
74+
}
75+
}
76+
return count;
77+
}
78+
79+
private void getPairs(int[] nums1, int[] nums2, int sum, int k) {
80+
pairs = new ArrayList<>();
81+
for (int item : nums1) {
82+
for (int j = 0; j < nums2.length && item + nums2[j] < sum; j++) {
83+
pairs.add(Arrays.asList(item, nums2[j]));
84+
}
85+
}
86+
for (int value : nums1) {
87+
for (int j = 0;
88+
j < nums2.length && value + nums2[j] <= sum && pairs.size() < k;
89+
j++) {
90+
if (value + nums2[j] == sum) {
91+
pairs.add(Arrays.asList(value, nums2[j]));
92+
}
93+
}
94+
}
95+
}
96+
97+
public void init() {
98+
if (null == pairs) {
99+
load();
100+
}
38101
}
39-
}
40-
return res;
102+
};
41103
}
42104
}

‎src/main/java/g0301_0400/s0383_ransom_note/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0301_0400.s0383_ransom_note;
22

33
// #Easy #String #Hash_Table #Counting #Data_Structure_I_Day_6_String #Top_Interview_150_Hashmap
4-
// #2022_07_13_Time_1_ms_(99.97%)_Space_46_MB_(62.86%)
4+
// #2025_03_09_Time_1_ms_(99.10%)_Space_44.62_MB_(86.13%)
55

66
public class Solution {
77
public boolean canConstruct(String ransomNote, String magazine) {

‎src/main/java/g0301_0400/s0392_is_subsequence/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// #Easy #String #Dynamic_Programming #Two_Pointers #Dynamic_Programming_I_Day_19
44
// #Level_1_Day_2_String #Udemy_Two_Pointers #Top_Interview_150_Two_Pointers
5-
// #2022_07_13_Time_1_ms_(93.01%)_Space_42.2_MB_(32.57%)
5+
// #2025_03_09_Time_1_ms_(93.13%)_Space_41.65_MB_(37.86%)
66

77
public class Solution {
88
public boolean isSubsequence(String s, String t) {

‎src/main/java/g0401_0500/s0427_construct_quad_tree/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0401_0500.s0427_construct_quad_tree;
22

33
// #Medium #Array #Tree #Matrix #Divide_and_Conquer #Top_Interview_150_Divide_and_Conquer
4-
// #2022_07_16_Time_0_ms_(100.00%)_Space_42.6_MB_(89.45%)
4+
// #2025_03_09_Time_0_ms_(100.00%)_Space_44.55_MB_(62.63%)
55

66
/*
77
// Definition for a QuadTree node.

‎src/main/java/g0401_0500/s0433_minimum_genetic_mutation/Solution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package g0401_0500.s0433_minimum_genetic_mutation;
22

33
// #Medium #String #Hash_Table #Breadth_First_Search #Graph_Theory_I_Day_12_Breadth_First_Search
4-
// #Top_Interview_150_Graph_BFS #2022_07_16_Time_1_ms_(90.95%)_Space_41.9_MB_(56.72%)
4+
// #Top_Interview_150_Graph_BFS #2025_03_09_Time_0_ms_(100.00%)_Space_41.65_MB_(47.68%)
55

66
import java.util.ArrayList;
77
import java.util.HashSet;

0 commit comments

Comments
(0)

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