From 4689e4e80b479be25f7557d05818f5caa723aafa Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Wed, 5 Feb 2025 18:36:31 -0800 Subject: Initial commit. --- .../sorting_and_searching/01_merge_sorted_array.cc | 24 ++++++++++++++++++++++ .../sorting_and_searching/02_first_bad_version.cc | 21 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 top-interview-questions/easy/sorting_and_searching/01_merge_sorted_array.cc create mode 100644 top-interview-questions/easy/sorting_and_searching/02_first_bad_version.cc (limited to 'top-interview-questions/easy/sorting_and_searching') 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 @@ +class Solution { +public: + void merge(vector& nums1, int m, vector& nums2, int n) { + int i = m-1; + int j = n-1; + int k = n+m-1; + + while ((i >= 0) && (j >= 0)) { + if (nums1[i] >= nums2[j]) { + nums1[k--] = nums1[i--]; + } else { + nums1[k--] = nums2[j--]; + } + } + + while (i >= 0) { + nums1[k--] = nums1[i--]; + } + + while (j >= 0) { + nums1[k--] = nums2[j--]; + } + } +}; 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 @@ +// The API isBadVersion is defined for you. +// bool isBadVersion(int version); + +class Solution { +public: + int FirstBad(int left, int right) { + if (left == right) { + return left; + } + const int mid = left + (right - left) / 2; + if (isBadVersion(mid)) { + return FirstBad(left, mid); + } else { + return FirstBad(mid+1, right); + } + } + + int firstBadVersion(int n) { + return FirstBad(1, n); + } +}; -- cgit v1.2.3