From 81a20a3e93a6c14c0077bf34940cea8e60a2ab04 Mon Sep 17 00:00:00 2001 From: Tanya Chauhan Date: Fri, 14 Aug 2020 00:58:11 +0530 Subject: [PATCH 1/3] Added the algorithm for atoi() --- atoi.cpp | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 atoi.cpp 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 From eb893db22265bd0e59ba6b6effd571a3a52eac47 Mon Sep 17 00:00:00 2001 From: Tanya Chauhan Date: Fri, 14 Aug 2020 01:02:58 +0530 Subject: [PATCH 2/3] Added algorithm for searching in rotated sorted array --- search_in_rotated_array.cpp | 41 +++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 search_in_rotated_array.cpp 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] Date: Fri, 14 Aug 2020 01:06:21 +0530 Subject: [PATCH 3/3] Added algorithm for merge intervals --- merge_intervals.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 merge_intervals.cpp 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