aboutsummaryrefslogtreecommitdiff
path: root/other/binary_search.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'other/binary_search.cpp')
-rw-r--r--other/binary_search.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/other/binary_search.cpp b/other/binary_search.cpp
new file mode 100644
index 0000000..478281e
--- /dev/null
+++ b/other/binary_search.cpp
@@ -0,0 +1,27 @@
+// 704. Binary Search
+#include "leetcode.h"
+
+class Solution {
+public:
+ int search(vector<int> &nums, int target) {
+ int n = nums.size() - 1;
+ int low = 0, high = n;
+ while (low <= high) {
+ int mid = low + (high - low) / 2;
+ if (nums[mid] == target)
+ return mid;
+ else if (nums[mid] > target)
+ high = mid - 1;
+ else
+ low = mid + 1;
+ }
+ return -1;
+ }
+};
+
+int main() {
+ Solution obj;
+ vector<int> nums = {-1, 0, 3, 5, 9, 12};
+ printf("%d\n", obj.search(nums, 9)); // expect: 4
+ printf("%d\n", obj.search(nums, 2)); // expect: -1
+}