Skip to main content

Posts

Two Pointer Technique

The two-pointer technique is a simple and effective technique that is used in competitive programming. It helps programmer to efficiently solve array problem. In two-pointer we take two pointer at the start and the end. That pointers started to iterate the whole array and solve problem according to a programmer. Suppose, we have an array n which consists m number of values. Now, if we want to sum all the element of the array then we have to iterate the whole array and sum all the element. Which will take O(n) time. n = [4, 5, 2, 4, 9, 4] But, in two-pointer technique we can solve this problem in O(n/2) time. Which is more efficient than traditional way. In the code, we used two variable st which point at first element of the array and en which point at the last element of the array. After this, we take a while loop which condition is st should be less than en. If the condition does not meet the value, then loop will break. In the loop, we summed the first value and last value that are ...

Leetcode: 121(Best Time to Buy and Sell Stock)

We can use sliding window technique to solve this problem in O(n) time. The answer of the question given below: #include<bits/stdc++.h> using namespace std; int main() {     optimize();     int arr[6]= {7,6,4,3,1,8};     int n=arr[0],mx=0;     for(int i=1; i<6; i++)     {         if(arr[i]>n)         {             int x = arr[i]-n;             mx = max(mx,x);         }         else         {             n = arr[i];         }     }     cout<<mx<<endl;     return 0; } Time Complexity: O(n) Space Complexity: O(1) Question Link:   Best Time to Buy and Sell Stock - LeetCode

How Sliding window works?

Sliding window is a problem solving technique by which we can find the maximum sum of k consecutive values in an n size array or array type data structure. This method usually uses a one-way for loop. Suppose we are given an array of size n=9 and we need to extract Here is the maximum value of 4 consecutive numbers. n = [ 5, 7, 1, 4, 3, 6, 2, 9, 2] If we want to solve this problem by brute force method. In that case our time complexity can be O(n2) or O(n3). Which is very time consuming. In this case we can use sliding window technique. which can give us the expected answer in O(n) time. As you can see from the above code, we first extract the sum of the first 4 numbers of the array and put it in max_sum. In the next loop, we add the next numbers and subtract the last number from that sum. Through which we got the sum of every 4 consecutive numbers in the loop.   Suppose, the max_sum variable contains the sum of the first four numbers [5, 7, 1, 4]. Now if we add the 5th value of n...