summaryrefslogtreecommitdiff
path: root/top-interview-questions/easy/sorting_and_searching
diff options
context:
space:
mode:
author3gg <3gg@shellblade.net>2025-02-05 18:36:31 -0800
committer3gg <3gg@shellblade.net>2025-02-05 18:36:31 -0800
commit4689e4e80b479be25f7557d05818f5caa723aafa (patch)
tree4df25811fe2a9a15b401375178da6537f4b6063f /top-interview-questions/easy/sorting_and_searching
Initial commit.HEADmain
Diffstat (limited to 'top-interview-questions/easy/sorting_and_searching')
-rw-r--r--top-interview-questions/easy/sorting_and_searching/01_merge_sorted_array.cc24
-rw-r--r--top-interview-questions/easy/sorting_and_searching/02_first_bad_version.cc21
2 files changed, 45 insertions, 0 deletions
diff --git a/top-interview-questions/easy/sorting_and_searching/01_merge_sorted_array.cc b/top-interview-questions/easy/sorting_and_searching/01_merge_sorted_array.cc
new file mode 100644
index 0000000..9abb974
--- /dev/null
+++ b/top-interview-questions/easy/sorting_and_searching/01_merge_sorted_array.cc
@@ -0,0 +1,24 @@
1class Solution {
2public:
3 void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
4 int i = m-1;
5 int j = n-1;
6 int k = n+m-1;
7
8 while ((i >= 0) && (j >= 0)) {
9 if (nums1[i] >= nums2[j]) {
10 nums1[k--] = nums1[i--];
11 } else {
12 nums1[k--] = nums2[j--];
13 }
14 }
15
16 while (i >= 0) {
17 nums1[k--] = nums1[i--];
18 }
19
20 while (j >= 0) {
21 nums1[k--] = nums2[j--];
22 }
23 }
24};
diff --git a/top-interview-questions/easy/sorting_and_searching/02_first_bad_version.cc b/top-interview-questions/easy/sorting_and_searching/02_first_bad_version.cc
new file mode 100644
index 0000000..15e2504
--- /dev/null
+++ b/top-interview-questions/easy/sorting_and_searching/02_first_bad_version.cc
@@ -0,0 +1,21 @@
1// The API isBadVersion is defined for you.
2// bool isBadVersion(int version);
3
4class Solution {
5public:
6 int FirstBad(int left, int right) {
7 if (left == right) {
8 return left;
9 }
10 const int mid = left + (right - left) / 2;
11 if (isBadVersion(mid)) {
12 return FirstBad(left, mid);
13 } else {
14 return FirstBad(mid+1, right);
15 }
16 }
17
18 int firstBadVersion(int n) {
19 return FirstBad(1, n);
20 }
21};