Jul 2, 2024
nums1
और nums2
इंटरसेक्शन फाइंड करना:
स्टेप्स:
उदाहरण:
nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
[2, 2]
[2]
nums1
के एलिमेंट्स को एक सेट में डाल दो (set1
)nums2
के एलिमेंट्स से चेक करो कि set1
में हैं या नहींset1
से हटा दोnums1
को सॉर्ट करोnums2
का हर एलिमेंट सॉर्टेड nums1
में बाइनरी सर्च से ढूंढोunordered_set<int> set1(nums1.begin(), nums1.end());
unordered_set<int> result;
for (int num : nums2) {
if (set1.find(num) != set1.end()) {
result.insert(num);
set1.erase(num);
}
}
vector<int> ans(result.begin(), result.end());
return ans;
unordered_set<int> set1(nums1.begin(), nums1.end());
vector<int> result;
for (int num : nums2) {
if (set1.find(num) != set1.end()) {
result.push_back(num);
set1.erase(num);
}
}
return result;
sort(nums1.begin(), nums1.end());
unordered_set<int> result;
for (int num : nums2) {
if (binary_search(nums1.begin(), nums1.end(), num)) {
result.insert(num);
}
}
vector<int> ans(result.begin(), result.end());
return ans;
sort(nums1.begin(), nums1.end());
sort(nums2.begin(), nums2.end());
vector<int> result;
int i = 0, j = 0;
while (i < nums1.size() && j < nums2.size()) {
if (nums1[i] == nums2[j]) {
if (result.empty() || result.back() != nums1[i]) {
result.push_back(nums1[i]);
}
i++;
j++;
} else if (nums1[i] < nums2[j]) {
i++;
} else {
j++;
}
}
return result;
set
, sort
, और binary search
के सही उपयोग से टाइम कॉम्प्लेक्सिटी में इम्प्रूवमेंट आ सकता है.