From ea2a3a3388b255db6534c1360b402f1c66b9e0e4 Mon Sep 17 00:00:00 2001 From: Sonampp1 <71454881+Sonampp1@users.noreply.github.com> Date: Tue, 8 Dec 2020 22:05:17 +0530 Subject: [PATCH 1/2] Add files via upload --- _zeros.cpp | 24 ++++++++++++++++++++++++ count_negativenos.cpp | 20 ++++++++++++++++++++ duplicate_sorted_array.cpp | 16 ++++++++++++++++ longest_string.cpp | 22 ++++++++++++++++++++++ maximum_subarray.cpp | 21 +++++++++++++++++++++ missing_no.cpp | 12 ++++++++++++ monotonic_array.cpp | 24 ++++++++++++++++++++++++ palindrome.cpp | 34 ++++++++++++++++++++++++++++++++++ pivote_index.cpp | 21 +++++++++++++++++++++ product_of_array.cpp | 21 +++++++++++++++++++++ revere_only_letters.cpp | 24 ++++++++++++++++++++++++ rotate_array.cpp | 21 +++++++++++++++++++++ spiral_matrix.cpp | 34 ++++++++++++++++++++++++++++++++++ target_array.cpp | 10 ++++++++++ xor_operation.cpp | 12 ++++++++++++ 15 files changed, 316 insertions(+) create mode 100644 _zeros.cpp create mode 100644 count_negativenos.cpp create mode 100644 duplicate_sorted_array.cpp create mode 100644 longest_string.cpp create mode 100644 maximum_subarray.cpp create mode 100644 missing_no.cpp create mode 100644 monotonic_array.cpp create mode 100644 palindrome.cpp create mode 100644 pivote_index.cpp create mode 100644 product_of_array.cpp create mode 100644 revere_only_letters.cpp create mode 100644 rotate_array.cpp create mode 100644 spiral_matrix.cpp create mode 100644 target_array.cpp create mode 100644 xor_operation.cpp diff --git a/_zeros.cpp b/_zeros.cpp new file mode 100644 index 0000000..95ed8e3 --- /dev/null +++ b/_zeros.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + void moveZeroes(vector& nums) { + int size = nums.size(); + int countzero = 0; + for(int i = 0; i < size; i++){ + if(nums[i] == 0){ + countzero++; + } + } + vector sorted; + for(int i = 0; i < size; i++){ + if(nums[i] != 0){ + sorted.push_back(nums[i]); + } + } + while(countzero--){ + sorted.push_back(0); + } + for(int i = 0; i < size; i++){ + nums[i] = sorted[i]; + } + } +}; \ No newline at end of file diff --git a/count_negativenos.cpp b/count_negativenos.cpp new file mode 100644 index 0000000..c31529e --- /dev/null +++ b/count_negativenos.cpp @@ -0,0 +1,20 @@ +class Solution { +public: + int countNegatives(vector>& grid) { + int result=0; + int i=0; + int x=grid.size(); + int j=grid[0].size()-1; + while(i=0) + { + if(grid[i][j]>=0) + i++; + else + { + result=result+x-i; + j--; + } + } + return result; + } +}; \ No newline at end of file diff --git a/duplicate_sorted_array.cpp b/duplicate_sorted_array.cpp new file mode 100644 index 0000000..6db6eb1 --- /dev/null +++ b/duplicate_sorted_array.cpp @@ -0,0 +1,16 @@ + +class Solution { +public: + int removeDuplicates(vector& nums) { + int curr = 0, left = 0, right = nums.size(); + while( left < right ) + { + while( left < right && nums[curr] == nums[left] ) + ++left; + if( left < right && nums[curr] != nums[left] ) + nums[curr+1] = nums[left]; + ++curr; + } + return curr; + } +}; \ No newline at end of file diff --git a/longest_string.cpp b/longest_string.cpp new file mode 100644 index 0000000..640eb98 --- /dev/null +++ b/longest_string.cpp @@ -0,0 +1,22 @@ +class Solution { +public: + int lengthOfLongestSubstring(string s) { + int str[CHAR_MAX]; + for(int i = 0; i < CHAR_MAX; i++) + str[i] = -1; + + size_t slength = s.length(); + int maxlength = 0; + int start = 0; + for(int i = 0; i < slength; i++) { + if(str[s[i]] == -1) + str[s[i]] = i; + else { + start = max(str[s[i]] + 1, start); + str[s[i]] = i; + } + maxlength = max(maxlength, i-start+1); + } + return maxlength; + } +}; \ No newline at end of file diff --git a/maximum_subarray.cpp b/maximum_subarray.cpp new file mode 100644 index 0000000..a83cd6b --- /dev/null +++ b/maximum_subarray.cpp @@ -0,0 +1,21 @@ +class Solution { +public: + int maxSubArray(vector& nums) { + int size=nums.size(); + int maxlength=nums[0]; + int arr[size]; + arr[0]=nums[0]; + for(int i=1;i0){ + arr[i]=arr[i-1]+nums[i]; + } + else{ + arr[i]=nums[i]; + } + if(arr[i]>maxlength){ + maxlength=arr[i]; + } + } + return maxlength; + } +}; \ No newline at end of file diff --git a/missing_no.cpp b/missing_no.cpp new file mode 100644 index 0000000..aa430b8 --- /dev/null +++ b/missing_no.cpp @@ -0,0 +1,12 @@ +class Solution { +public: + int missingNumber(vector& nums) { + int n1=0,n2=0; + for(int i=0;i& A){ + for(int i = 0; i < A.size()-1; i++){ + if(A[i] > A[i+1]){ + return false; + } + } + return true; + } + bool isMonotonicDecreasing(vector& A){ + for(int i = 0; i < A.size()-1; i++){ + if(A[i] < A[i+1]){ + return false; + } + } + return true; + } + + bool isMonotonic(vector& A) { + return isMonotonicIncreasing(A) || isMonotonicDecreasing(A); + } +}; \ No newline at end of file diff --git a/palindrome.cpp b/palindrome.cpp new file mode 100644 index 0000000..43fe8a6 --- /dev/null +++ b/palindrome.cpp @@ -0,0 +1,34 @@ +class Solution { +public: + bool isPalindrome(string s) { + int l = 0, h = s.length()-1; + + + for (int i = 0; i <= h; i++) + s[i] = tolower(s[i]); + + + while (l < h) + { + + + while( !((s[l] >= 'a' && s[l] <= 'z') || (s[l] >='0' && s[l] <= '9')) && l < h){ + //cout << "s[l] : " << s[l] << endl; + l++; + } + + while( !((s[h] >= 'a' && s[h] <= 'z') || (s[h] >='0'&& s[h] <= '9')) && l < h){ + h--; + } + + if (s[l] != s[h]) { + //cout << s[l] << " " << " l:" << l << " " << s[h] << endl; + return false; + } + cout << s[l] << " " << " l:" << l << " " << s[h] << endl; + l++; + h--; + } + return true; + } +}; \ No newline at end of file diff --git a/pivote_index.cpp b/pivote_index.cpp new file mode 100644 index 0000000..d3690bb --- /dev/null +++ b/pivote_index.cpp @@ -0,0 +1,21 @@ +class Solution { +public: + int pivotIndex(vector& nums) { + int leftsum, rightsum; + int totalsum = 0; + for(int i = 0; i < nums.size(); i++){ + totalsum += nums[i]; + } + for(int i = 0; i < nums.size(); i++){ + leftsum = 0; + for(int j = 0; j < i; j++){ + leftsum += nums[j]; + } + rightsum = totalsum - leftsum - nums[i]; + if(leftsum == rightsum){ + return i; + } + } + return -1; + } +}; \ No newline at end of file diff --git a/product_of_array.cpp b/product_of_array.cpp new file mode 100644 index 0000000..01a1ee5 --- /dev/null +++ b/product_of_array.cpp @@ -0,0 +1,21 @@ +class Solution { +public: + vector productExceptSelf(vector& nums) { + int size = nums.size(); + vector left(size); + vector right(size); + vector finalans(size); + left[0] = 1; + for(int i = 1; i < size; i++ ){ + left[i] = nums[i-1]*left[i-1]; + } + right[size - 1]= 1; + for(int i = size - 2; i >= 0; i--){ + right[i] = nums[i+1]*right[i+1]; + } + for(int i = 0; i < size; i++){ + finalans[i] = left[i]*right[i]; + } + return finalans; + } +}; \ No newline at end of file diff --git a/revere_only_letters.cpp b/revere_only_letters.cpp new file mode 100644 index 0000000..baf3415 --- /dev/null +++ b/revere_only_letters.cpp @@ -0,0 +1,24 @@ +class Solution { +public: + string reverseOnlyLetters(string S) { + int start=0; + int end=S.size(); + + while(start& v, int begin, int end){ + while(begin < end){ + int temp = v[begin]; + v[begin] = v[end]; + v[end] = temp; + begin++; + end--; + } + } + void rotate(vector& nums, int k) { + k = k%nums.size(); + // REVERSE THE WHOLE ARRAY + reverse(nums, 0, nums.size()-1); + // REVERSE THE ARRAY TILL K; + reverse(nums, 0, k-1); + // REVERSE THE ARRAY FROM K+1 TO THE END + reverse(nums, k, nums.size()-1); + } +}; \ No newline at end of file diff --git a/spiral_matrix.cpp b/spiral_matrix.cpp new file mode 100644 index 0000000..fffbf5c --- /dev/null +++ b/spiral_matrix.cpp @@ -0,0 +1,34 @@ +class Solution { +public: + vector ans; + void printResult(int x, int y, int n, int m, vector>& matrix){ + for(int right=y; right<=m; right++){ + ans.push_back(matrix[x][right]); + } + for(int down=x+1; down<=n; down++){ + ans.push_back(matrix[down][m]); + } + if(x != n) for(int left=m-1; left>=y; left--){ + ans.push_back(matrix[n][left]); + } + if(y != m) for(int top=n-1; top>x; top--) { + ans.push_back(matrix[top][y]); + } + } + vector spiralOrder(vector>& matrix) { + if(matrix.size() == 0){ + return ans; + } + int n = matrix.size(); + int m = matrix[0].size(); + int curr = 0; + int N = n-1; + int M = m-1; + while(ans.size() < n*m){ + printResult(curr, curr, N-curr, M-curr, matrix); + curr++; + } + + return ans; + } +}; \ No newline at end of file diff --git a/target_array.cpp b/target_array.cpp new file mode 100644 index 0000000..4157b44 --- /dev/null +++ b/target_array.cpp @@ -0,0 +1,10 @@ +class Solution { +public: + vector createTargetArray(vector& nums, vector& index) { + vector target; + for(int i = 0; i < index.size(); i++){ + target.insert(target.begin()+index[i], nums[i]); + } + return target; + } +}; \ No newline at end of file diff --git a/xor_operation.cpp b/xor_operation.cpp new file mode 100644 index 0000000..8a401cc --- /dev/null +++ b/xor_operation.cpp @@ -0,0 +1,12 @@ +class Solution { +public: + int xorOperation(int n, int start) { + int nums[n]; + int result=0; + for(int i=0; i < n; i++){ + nums[i]=(start+2*i); + result=result^nums[i]; + } + return result; + } +}; \ No newline at end of file From f82c0c75dd3004625e2afd32909123b1ce3f87d6 Mon Sep 17 00:00:00 2001 From: Sonampp1 <71454881+Sonampp1@users.noreply.github.com> Date: Tue, 8 Dec 2020 22:06:07 +0530 Subject: [PATCH 2/2] Add files via upload