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 146b7b4

Browse files
add
1 parent 83a7a0b commit 146b7b4

File tree

4 files changed

+206
-0
lines changed

4 files changed

+206
-0
lines changed
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package LeetcodeQuestions;
2+
3+
import java.util.*;
4+
5+
6+
class Solution {
7+
private class Pair {
8+
Integer u;
9+
Integer v;
10+
11+
public Pair(int u, int v) {
12+
this.u = u;
13+
this.v = v;
14+
}
15+
}
16+
17+
public List<List<Integer>> kSmallestPairs(int[] nums1, int[] nums2, int k) {
18+
List<List<Integer>> resultPairs = new ArrayList<>();
19+
if (nums1.length == 0) {
20+
return resultPairs;
21+
} else if (nums2.length == 0) {
22+
return resultPairs;
23+
}
24+
int totalLength = nums1.length * nums2.length;
25+
Pair[] pairs = new Pair[totalLength];
26+
int index = 0;
27+
for (int ele1 : nums1) {
28+
for (int ele2 : nums2) {
29+
pairs[index++] = new Pair(ele1, ele2);
30+
}
31+
}
32+
Queue<Pair> maxHeap = new PriorityQueue(totalLength, new Comparator<Pair>() {
33+
public int compare(Pair p1, Pair p2) {
34+
Integer a = p1.u + p1.v;
35+
Integer b = p2.u + p2.v;
36+
return b.compareTo(a);
37+
}
38+
});
39+
40+
for (Pair p : pairs) {
41+
maxHeap.offer(p);
42+
if (maxHeap.size() > k)
43+
maxHeap.poll();
44+
}
45+
for (Pair p : maxHeap) {
46+
Integer u = p.u;
47+
Integer v = p.v;
48+
List<Integer> temp = new ArrayList<>();
49+
temp.add(u);
50+
temp.add(v);
51+
resultPairs.add(temp);
52+
}
53+
return resultPairs;
54+
}
55+
}
56+
57+
public class FindKPairsSmallestSum {
58+
59+
60+
61+
public List<List<Integer>> kSmallestPairs(int[] nums1, int[] nums2, int k) {
62+
PriorityQueue<int[]> allPairs = new PriorityQueue<>((a, b) -> a[2] - b[2]);
63+
64+
for (int i = 0; i < nums1.length; i++) {
65+
for (int j = 0; j < nums2.length; j++) {
66+
allPairs.add(new int[] {nums1[i], nums2[j], nums1[i] + nums2[j]});
67+
}
68+
}
69+
70+
List<List<Integer>> kSmallestPairs = new ArrayList<>();
71+
72+
while (!allPairs.isEmpty() && k-- > 0) {
73+
int[] currentPair = allPairs.poll();
74+
kSmallestPairs.add(Arrays.asList(currentPair[0], currentPair[1]));
75+
}
76+
77+
return kSmallestPairs;
78+
}
79+
80+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package LeetcodeQuestions;
2+
3+
import java.util.*;
4+
5+
6+
class Pair implements Comparable<Pair> {
7+
int element;
8+
int frequency;
9+
10+
Pair(int element, int frequency) {
11+
this.element = element;
12+
this.frequency = frequency;
13+
}
14+
15+
@Override
16+
public int compareTo(Pair other) {
17+
return this.frequency - other.frequency;
18+
}
19+
20+
}
21+
public class TopKFreqElement {
22+
23+
24+
25+
26+
public int[] topKFrequent(int[] nums, int k) {
27+
PriorityQueue<Pair> maxHeap = new PriorityQueue<>(Comparator.reverseOrder());
28+
Map<Integer, Integer> map = new HashMap<>();
29+
int[] ans = new int[k];
30+
31+
for (int i = 0; i < nums.length; i++) {
32+
map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
33+
}
34+
35+
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
36+
maxHeap.add(new Pair(entry.getKey(), entry.getValue()));
37+
}
38+
39+
for (int i = 0; i < k; i++) {
40+
ans[i] = maxHeap.poll().element;
41+
}
42+
return ans;
43+
}
44+
45+
public static void main(String[] args) {
46+
47+
}
48+
49+
}

‎src/LeetcodeQuestions/TwoSum.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package LeetcodeQuestions;
2+
3+
import java.util.*;
4+
public class TwoSum {
5+
6+
7+
public int[] helper(int[] nums, int target) {
8+
Map<Integer, Integer> map = new HashMap<>();
9+
for (int i = 0; i < nums.length; i++) {
10+
int remain = target - nums[i];
11+
if (map.containsKey(remain)) {
12+
return new int[] {map.get(remain),i};
13+
}
14+
map.put(nums[i], i);
15+
}
16+
return new int[]{};
17+
}
18+
19+
public static void main(String[] args) {
20+
21+
}
22+
23+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
package LeetcodeQuestions;
2+
3+
import java.util.PriorityQueue;
4+
5+
public class kthlargestElementStream {
6+
7+
8+
PriorityQueue<Integer> pq;
9+
int size = 0;
10+
11+
public kthlargestElementStream(int k, int[] nums) {
12+
this.pq = new PriorityQueue<Integer>();
13+
for (int i=0; i<k && i<nums.length; i++) {
14+
pq.add(nums[i]);
15+
}
16+
for (int i=k; i<nums.length; i++) {
17+
if (nums[i]>pq.peek()) {
18+
pq.poll();
19+
pq.add(nums[i]);
20+
}
21+
}
22+
this.size = k;
23+
}
24+
25+
public int helper(int val) {
26+
if (pq.size() < size) {
27+
pq.add(val);
28+
return pq.peek();
29+
} else if (val < pq.peek()) {
30+
return pq.peek();
31+
} else {
32+
pq.poll();
33+
pq.add(val);
34+
return pq.peek();
35+
}
36+
}
37+
38+
39+
public static void main(String[] args) {
40+
41+
int k = 3;
42+
int[] nums = {4, 5, 8, 2};
43+
kthlargestElementStream kthLargest = new kthlargestElementStream(k, nums);
44+
System.out.println(kthLargest.helper(3));
45+
46+
}
47+
48+
49+
}
50+
51+
52+
53+
54+

0 commit comments

Comments
(0)

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