diff --git a/atoi.cpp b/atoi.cpp new file mode 100644 index 0000000..b88c6c4 --- /dev/null +++ b/atoi.cpp @@ -0,0 +1,50 @@ +#include +using namespace std; +int myAtoi(string str) { + int n=str.size(); + int i=0; + while(i='0' && str[i]<='9')){ + return 0; + } + long long ans=0; + for(i;i='0' && str[i]<='9'){ + if(sign==1){ + if(INT_MAX/10'7'){ + return INT_MAX; + } + } + if(sign==-1){ + if(INT_MAX/10'8'){ + return INT_MIN; + } + } + ans*=10; + ans+=str[i]-'0'; + } + else{ + break; + } + } + return sign*ans; + } \ No newline at end of file diff --git a/merge_intervals.cpp b/merge_intervals.cpp new file mode 100644 index 0000000..26ba8b9 --- /dev/null +++ b/merge_intervals.cpp @@ -0,0 +1,22 @@ +#include +using namespace std; +vector> merge(vector> &intervals) +{ + sort(intervals.begin(), intervals.end()); + vector> ans; + int n = intervals.size(); + int end_idx = -1; + for (int i = 0; i < n; i++) + { + if (intervals[i][0] > end_idx) + { + ans.push_back(intervals[i]); + } + else + { + ans[ans.size() - 1][1] = max(end_idx, intervals[i][1]); + } + end_idx = max(end_idx, intervals[i][1]); + } + return ans; +} \ No newline at end of file diff --git a/search_in_rotated_array.cpp b/search_in_rotated_array.cpp new file mode 100644 index 0000000..372b55c --- /dev/null +++ b/search_in_rotated_array.cpp @@ -0,0 +1,41 @@ +#include +using namespace std; +int search(vector& nums, int target) { + int n=nums.size(); + if(n==0){ + return -1; + } + int l=0,h=n-1; + while(lnums[h]){ + l=mid+1; + } + else{ + h=mid; + } + } + int start=l; + cout<=target){ + l=start; + h=n-1; + } + else{ + l=0; + h=start-1; + } + while(l<=h){ + int mid=(l+h)/2; + if(nums[mid]==target){ + return mid; + } + if(nums[mid]