Skip to content

Commit

Permalink
added important code
Browse files Browse the repository at this point in the history
  • Loading branch information
khushal87 committed Feb 22, 2021
1 parent d925e51 commit 2cf2165
Show file tree
Hide file tree
Showing 25 changed files with 298 additions and 137 deletions.
Binary file removed Array/best_time_to_buy_and_sell_stock
Binary file not shown.
36 changes: 21 additions & 15 deletions Array/best_time_to_buy_and_sell_stock.c++
Original file line number Diff line number Diff line change
@@ -1,29 +1,35 @@
#include <bits/stdc++.h>
using namespace std;

int maxProfit(vector<int>& prices) {
int max_so_far=0;
int max_ending_here=0;
for(int i=1;i<prices.size();i++){
max_ending_here+=prices[i]-prices[i-1];
if(max_ending_here>max_so_far){
max_so_far=max_ending_here;
int maxProfit(vector<int> &prices)
{
int max_so_far = 0;
int max_ending_here = 0;
for (int i = 1; i < prices.size(); i++)
{
max_ending_here += prices[i] - prices[i - 1];
if (max_ending_here > max_so_far)
{
max_so_far = max_ending_here;
}
if(max_ending_here<0){
max_ending_here=0;
if (max_ending_here < 0)
{
max_ending_here = 0;
}
}
return max_so_far;
}

int main(){
int main()
{
int n;
cin>>n;
vector <int> v;
for(int i=0;i<n;i++){
cin >> n;
vector<int> v;
for (int i = 0; i < n; i++)
{
int x;
cin>>x;
cin >> x;
v.push_back(x);
}
cout<<maxProfit(v)<<endl;
cout << maxProfit(v) << endl;
}
Binary file removed Array/check_if_array_is_subset_of_another_array
Binary file not shown.
Binary file removed Array/count_pairs_with_given_sum
Binary file not shown.
20 changes: 20 additions & 0 deletions Array/find_duplicate_in_array.c++
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#include <bits/stdc++.h>
using namespace std;

int findDup(vector<int> &arr)
{
int slow = arr[0];
int fast = arr[0];
do
{
slow = arr[slow];
fast = arr[arr[fast]];
} while (slow != fast);
fast = arr[0];
while (slow != fast)
{
slow = arr[slow];
fast = arr[fast];
}
return slow;
}
43 changes: 43 additions & 0 deletions Array/four_sum.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> fourSum(vector<int> &nums, int target)
{
vector<vector<int>> ans;
if (nums.empty())
return ans;
int n = nums.size();
sort(nums.begin(), nums.end());
for (int i = 0; i < n; i++)
{
for (int j = i + 1; j < n; j++)
{
int tar2 = target - nums[i] - nums[j];
int front = j + 1;
int back = n - 1;
while (front < back)
{
int twosum = nums[front] + nums[back];
if (twosum < tar2)
front++;
else if (twosum > tar2)
back--;
else
{
vector<int> quad;
quad = {nums[i], nums[j], nums[front], nums[back]};
ans.push_back(quad);
while (front < back && nums[front] == quad[2])
++front;
while (front < back && nums[back] == quad[3])
--back;
}
}
while (j + 1 < n && nums[j] == nums[j + 1])
++j;
}
while (i + 1 < n && nums[i] == nums[i + 1])
++i;
}
return ans;
}
Binary file removed Array/kadane_algorithm
Binary file not shown.
34 changes: 20 additions & 14 deletions Array/kadane_algorithm.c++
Original file line number Diff line number Diff line change
@@ -1,28 +1,34 @@
#include <bits/stdc++.h>
using namespace std;

int solve(int arr[],int n){
int max_so_far=INT_MIN;
int solve(int arr[], int n)
{
int max_so_far = INT_MIN;
int max_ending_here = 0;
for(int i=0;i<n;i++){
max_ending_here+=arr[i];
if(max_ending_here>max_so_far){
max_so_far=max_ending_here;
for (int i = 0; i < n; i++)
{
max_ending_here += arr[i];
if (max_ending_here > max_so_far)
{
max_so_far = max_ending_here;
}
if(max_ending_here<0){
max_ending_here=0;
if (max_ending_here < 0)
{
max_ending_here = 0;
}
}
return max_so_far;
}

int main(){
int main()
{
int n;
cin>>n;
cin >> n;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
cout<<solve(arr,n);
cout<<endl;
cout << solve(arr, n);
cout << endl;
}
Binary file removed Array/kth_min_element
Binary file not shown.
26 changes: 14 additions & 12 deletions Array/kth_min_element.cpp
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
#include<bits/stdc++.h>
#include <bits/stdc++.h>
using namespace std;

int kThMin(int arr[],int n,int k){
sort(arr,arr+n);
return arr[k-1];
int kThMin(int arr[], int n, int k)
{
sort(arr, arr + n);
return arr[k - 1];
}

int main()
{
//code
{
//code

int n;
cin>>n;
cin >> n;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
int k;
cin>>k;
cout<<kThMin(arr,n,k)<<endl;
return 0;
cin >> k;
cout << kThMin(arr, n, k) << endl;
return 0;
}
Empty file modified Array/max_min_in_arrays/2
100755 → 100644
Empty file.
Binary file removed Array/maximum_product_subarray
Binary file not shown.
2 changes: 1 addition & 1 deletion Array/maximum_product_subarray.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ll maxProduct(int arr[], int n)
{
max_ending_here = abs(max_ending_here);
}
cout<<max_ending_here<<" ";
cout << max_ending_here << " ";
}
return max_so_far;
}
Expand Down
28 changes: 28 additions & 0 deletions Array/merge_overlapping_intervals.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> merge(vector<vector<int>> &intervals)
{
vector<vector<int>> ans;
if (intervals.size() == 0)
return ans;
else
{
sort(intervals.begin(), intervals.end());
vector<int> curr = intervals[0];
for (auto j : intervals)
{
if (j[0] <= curr[1])
{
curr[1] = max(curr[1], j[1]);
}
else
{
ans.push_back(curr);
curr = j;
}
}
ans.push_back(curr);
return ans;
}
}
Binary file removed Array/negative_elements_to_one_side
Binary file not shown.
42 changes: 26 additions & 16 deletions Array/negative_elements_to_one_side.c++
Original file line number Diff line number Diff line change
@@ -1,37 +1,47 @@
#include <bits/stdc++.h>
using namespace std;

void solve(int arr[],int n){
void solve(int arr[], int n)
{
int start = 0;
int end = n-1;
while(start<=end){
if(arr[start]<0&&arr[end]<0){
int end = n - 1;
while (start <= end)
{
if (arr[start] < 0 && arr[end] < 0)
{
start++;
}
else if(arr[start]>0&&arr[end]>0){
else if (arr[start] > 0 && arr[end] > 0)
{
end--;
} else if(arr[start]>0&&arr[end]<0){
swap(arr[start],arr[end]);
}
else if (arr[start] > 0 && arr[end] < 0)
{
swap(arr[start], arr[end]);
start++;
end--;
}
else{
else
{
start++;
end--;
}
}
}

int main(){
int main()
{
int n;
cin>>n;
cin >> n;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
solve(arr,n);
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
solve(arr, n);
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout<<endl;
cout << endl;
}
Binary file removed Array/reverse_an_array
Binary file not shown.
29 changes: 17 additions & 12 deletions Array/reverse_an_array.cpp
Original file line number Diff line number Diff line change
@@ -1,26 +1,31 @@
#include <bits/stdc++.h>
using namespace std;

void solve(int arr[],int start,int end){
while(start<end){
void solve(int arr[], int start, int end)
{
while (start < end)
{
int temp = arr[start];
arr[start]= arr[end];
arr[end]=temp;
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}

int main(){
int main()
{
int n;
cin>>n;
cin >> n;
int arr[n];
for(int i=0;i<n;i++){
cin>>arr[i];
for (int i = 0; i < n; i++)
{
cin >> arr[i];
}
solve(arr,0,n-1);
for(int i=0;i<n;i++){
cout<<arr[i]<<" ";
solve(arr, 0, n - 1);
for (int i = 0; i < n; i++)
{
cout << arr[i] << " ";
}
cout<<endl;
cout << endl;
}
Binary file removed Array/reverse_an_array_recursive
Binary file not shown.
Loading

0 comments on commit 2cf2165

Please sign in to comment.