diff --git a/problem1.cpp b/problem1.cpp new file mode 100644 index 00000000..ba70248e --- /dev/null +++ b/problem1.cpp @@ -0,0 +1,23 @@ +class Solution { +public: + bool searchMatrix(vector>& matrix, int target) { + int m=matrix.size(); + int n=matrix[0].size(); + int low=0, high=m*n-1; + while(low<=high) + { + int mid=low+(high-low)/2; + int row=mid/n; + int col=mid%n; + if(target==matrix[row][col]) + return true; + else if(target>matrix[row][col]) + low=mid+1; + else + high=mid-1; + } + return false; + + } +}; + diff --git a/problem2.cpp b/problem2.cpp new file mode 100644 index 00000000..422698fb --- /dev/null +++ b/problem2.cpp @@ -0,0 +1,32 @@ +class Solution { +public: + int search(vector& nums, int target) { + int n=nums.size(); + int low=0, high=n-1; + + while(low<=high) + { + int mid=low+(high-low)/2; + + if(target==nums[mid]) + return mid; + if(nums[low]<=nums[mid]) + { + if(target>=nums[low] and target<=nums[mid]) + high=mid-1; + else + low=mid+1; + } + else + { + if(target>=nums[mid] and target<=nums[high]) + low=mid+1; + else + high=mid-1; + } + + } + return -1; + } +}; +