L2. Maximum Points You Can Obtain from Cards | 2 Pointers and Sliding Window Playlist

  Рет қаралды 87,714

take U forward

take U forward

Күн бұрын

Notes/Codes/Problem links under step 10 of A2Z DSA Course: takeuforward.o...
Entire playlist: • Two Pointer and Slidin...
Follow us on our other social media handles: linktr.ee/take...

Пікірлер: 105
@muhammadfarhaan6951
@muhammadfarhaan6951 6 ай бұрын
Implementing it yourself makes it much more clearer.
@4444-c4s
@4444-c4s 6 ай бұрын
East or West, Striver bhaiya sabse Best KZbin pe esa koi bhi nahi hoga jo job ke saath saath itna content banata ho aur apni company bhi chalata ho...🙏🙏🙏
@Coder_Buzz07
@Coder_Buzz07 6 ай бұрын
codewithmik bhi hai bro
@Amanh729
@Amanh729 5 ай бұрын
@@Coder_Buzz07 yup
@adarshnegi8906
@adarshnegi8906 Ай бұрын
This was a great problem, i hope one day i can come up with such approach all by myself. For those who might of two pointers i at 0 and j at n-1 and compare instances , this method will fail on TC such as [11,49,100,20,86,29,72], because at first it looks 72 should be chosen but all the elements after 11 are large and they will compensate and produce maximum score
@mayanksaurabhmayanksaurabh9271
@mayanksaurabhmayanksaurabh9271 4 ай бұрын
thanks for so easy and intuitive solution. Lot of solutions for this problem are problem which have made it look really complex
@unknown2698
@unknown2698 3 ай бұрын
public static int maxScore(int[] cardPoints, int k) { int lsum =0, rsum =0, max =0,sum =0; int n = cardPoints.length; for(int i=0;imax){ max = sum; } } return max; } same approach but easier to understand
@VarshaSingh-hi2sb
@VarshaSingh-hi2sb 24 күн бұрын
In this case with above solution in video we can't take 7 i.e 7,2,1,7 which will result in more sum . or is it important to take the last card ?
@vaibhavmurarka5179
@vaibhavmurarka5179 6 ай бұрын
my approach is similar to urs what i did is take k last elements followed by k first then i took sum of last k and then kept removing the front and adding the latest element in the sum and took max of these steps: int n=arr.size(); int ans=0; int sum=0; int ret=0; for(int i=n-k;i
@aakanshavishwakarma8235
@aakanshavishwakarma8235 4 ай бұрын
another approach? we can take a consecutive window of size (n-k) and find the minimum sum window , that yields us the maximum sum of the remaining 4 elements from the first or last
@akshaysharmaBSG
@akshaysharmaBSG 3 ай бұрын
Yes...that also makes sense...but what will be time complexity for getting min sum of n-k array size ?
@AryanGupta-2024
@AryanGupta-2024 2 ай бұрын
@@akshaysharmaBSG O(N) time and O(1) space
@sjain6320
@sjain6320 Ай бұрын
@@AryanGupta-2024 yeah i did this but ig his solution is better as it is O(2k)
@time-barbaad
@time-barbaad Ай бұрын
@@sjain6320 the above said solution would be better in the cases where k > n/2
@109_debjitacharjee9
@109_debjitacharjee9 5 ай бұрын
u are the best bhaiya🤩 eagerly waiting for your string playlist
@IstiakGametube
@IstiakGametube 6 ай бұрын
I have been following your a2z DSA course. I want to do strings but there is no videos and problems in your sheet. Please make videos on them and upload the problems
@mrinceptionist7038
@mrinceptionist7038 5 ай бұрын
bro what are you talking about.....the a2z dsa sheet has 2 dedicated section for strings....step-5 and step-18, which covers all basics,medium and hard string questions !!!
@IstiakGametube
@IstiakGametube 5 ай бұрын
@@mrinceptionist7038 He has questions but there is no solve videos for them
@KashishIsOn786
@KashishIsOn786 5 ай бұрын
Thank you @striver , for making DSA Easy for us . Hatts of to you .
@rushidesai2836
@rushidesai2836 Ай бұрын
Classic problem.. thanks Striver!
@someThingisFishy5
@someThingisFishy5 2 ай бұрын
One more approach: As the qsn asking us to pickup the maximum points , and the points can be pickup either front or back side, (which leaves the least sum of points in the array) so we can find the minimum sum ,with window size n-k and subtract the result from total sum of the array ,we can use sliding window to solve this Time Complexity is O(N) Space Complexity is O(1)
@stith_pragya
@stith_pragya 4 ай бұрын
Understood...........Thank You So Much for this wonderful video..........🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻🙏🏻
@bhaiinnaa6535
@bhaiinnaa6535 2 ай бұрын
You can take n-k as windowlength , totalsum=sum(arr) windowlength=n-k currwindowsum=sum(arr[:windowlength) maxwin=curwin , for l in range(windowlen,n): curwin +=arr[l]-arr[l-windowlen] netsum=total-curwin maxwin=max(maxwin,netsum)
@Codingforugeek
@Codingforugeek 6 ай бұрын
class Solution { public: int maxScore(vector& nums, int k) { int leftSum=0,rightSum=0,maxSum=0; for(int i=0;i=0;i--){ leftSum-=nums[i]; rightSum+=nums[rightIndex]; rightIndex--; maxSum=max(maxSum,leftSum+rightSum); } return maxSum; } }; here's the working code..... 😌
@AmanPandey-bd1sj
@AmanPandey-bd1sj 3 ай бұрын
thanks you bhaiya, Understood😊 import java.util.*; public class main{ public static void main(String args[]){ int a[] = {6, 2, 3, 4, 7, 2, 1, 7, 1}; int k = 4; System.out.println("MAX SUM IS: "+ findMaxPoints(a, k)); } public static int findMaxPoints(int a[], int k){ int lsum = 0; int rsum = 0; int maxsum = 0; for(int i=0;i
@parth_3856
@parth_3856 6 ай бұрын
OTHER CREATORS! be like "BHAI SAANS THO LENE DE......".
@raghavmanish24
@raghavmanish24 4 ай бұрын
hey striver ... i'm the one of those follower who always give time for like and comment whenever i watch your videos.....thanku again
@torishi82
@torishi82 4 ай бұрын
Understood bhai. Thank you.
@hashcodez757
@hashcodez757 Ай бұрын
"UNDERSTOOD BHAIYA!!"
@subhasishdas3011
@subhasishdas3011 6 ай бұрын
One more approach is finding min_sum of all windows of size array_length - k , array_total_sum - min_sum will be the ans.
@ishanaggarwal7265
@ishanaggarwal7265 4 ай бұрын
Hi striver, I knew a better solution that solves in single pass.
@salehaafreen4309
@salehaafreen4309 Ай бұрын
share it please
@ted_mosby
@ted_mosby Ай бұрын
feels a little happy to solve this on my own
@tlasyashree7590
@tlasyashree7590 19 күн бұрын
Super easily understood
@ShauryaPundir
@ShauryaPundir 6 ай бұрын
thanks vvvvv much sir,i really wanted a playlist like this
@lavanyaan2158
@lavanyaan2158 5 ай бұрын
Thank you so much for the video bro.
@jivanmainali1742
@jivanmainali1742 Ай бұрын
With modulo , its much easier class Solution { public: int maxScore(vector& cardPoints, int k) { int n = cardPoints.size(); int left = n-k; int right = n-k; int ans = 0; int sum = 0; while (left < n) { if ((right - left + 1)
@hareshnayak7302
@hareshnayak7302 5 ай бұрын
Thanks striver for this amazing video.
@LinhHoang-ml1qo
@LinhHoang-ml1qo 4 ай бұрын
understood!Thank you Striver
@bharath3387
@bharath3387 5 ай бұрын
Do we need seperate variables for right and left sum, can we not just maintain a single variable and 2 pointers and remove left pointer value and increase right bponter value
@jayateerthag.h5372
@jayateerthag.h5372 26 күн бұрын
Thankyou
@sarangkumarsingh7901
@sarangkumarsingh7901 5 ай бұрын
Wow......nice approach......
@ganeshjaggineni4097
@ganeshjaggineni4097 3 ай бұрын
NICE SUPER EXCELLENT MOTIVATED
@oyeesharme
@oyeesharme Ай бұрын
understood bhaiya
@aditya_raj7827
@aditya_raj7827 2 ай бұрын
Understood 😊😊
@mr_weird3680
@mr_weird3680 6 ай бұрын
Thanks Brother❤
@ShahNawaz-nk3po
@ShahNawaz-nk3po 4 ай бұрын
Another approach with is exactly same as one of the very standard Sliding window question. class Solution { public: int maxScore(vector& cardPoints, int k) { // we need to find substring of size (n-k) and minimum sum // final answer = is total sum of length n - minimum sum of substring of length (n-k) // = maximum sum of length k taken from extreme left/right int n = cardPoints.size(); int l = 0; int r = 0; int ans = INT_MAX; int sum = 0; int val = 0; for(auto it:cardPoints) val+=it; while(r(n-k)){ sum-=cardPoints[l]; l++; } if(r-l+1==(n-k)) ans = min(ans, sum); r++; } return val-ans; } };
@subee128
@subee128 6 ай бұрын
Thank you very much
@kshitijraj1320
@kshitijraj1320 6 ай бұрын
great video 😇
@iamnottech8918
@iamnottech8918 2 ай бұрын
Mja AAGeYa!!
@codeman3828
@codeman3828 5 ай бұрын
Understood. Thanks
@naveenau143
@naveenau143 3 ай бұрын
Understood ❤
@aloklaha8694
@aloklaha8694 Ай бұрын
Understood
@MJBZG
@MJBZG Ай бұрын
understood
@Pushpraj-sf1nz
@Pushpraj-sf1nz 5 ай бұрын
it was helpful
@ok-jg9jb
@ok-jg9jb 6 ай бұрын
Thanks❤
@sandeeppp9040
@sandeeppp9040 3 ай бұрын
class Solution { public int maxScore(int[] cardPoints, int k) { int lsum=0,rsum=0,maxSum=0; for(int i=0;i=0;i--){ lsum-=cardPoints[i]; rsum+=cardPoints[rindex]; rindex--; maxSum=Math.max(maxSum,(lsum+rsum)); } return maxSum; } } i was here and anyone can have this java code !!!! and also initial loop will go to end k because of correct calculation of lsum
@8daudio672
@8daudio672 6 ай бұрын
class Solution { public int maxScore(int[] nums, int k) { //int left=0,right=0,maxi=0,sum=0; int n=nums.length,leftsum=0,rightsum=0,maxi=0; for(int i=0;i=0;i--){ leftsum-=nums[i];//contract //if(j>n-k-1) rightsum+=nums[j];//expand j--; maxi=Math.max(maxi,leftsum+rightsum); } return maxi; } } whats wong with it
@kisnagoyal9694
@kisnagoyal9694 6 ай бұрын
I think you are ignoring value of leftsum from (idx = 0 to idx=k-1) in maxi... So it doesn't take value of leftsum for first kth elements. So after the first loop try maxi = leftsum before going for second loop in which you are decreasing value of leftsum....try it...may help..
@MuralidharanSrec
@MuralidharanSrec 13 күн бұрын
here that you have included all the elements as 4 size but the index 4 element 7 is not at all included if its included the output will be 17 am i correct
@rishabsharma5307
@rishabsharma5307 3 ай бұрын
Started from the end and circularly rotated sliding window ``` int maxScore(vector& cardPoints, int k) { int i, j, maxSum, sum, n = cardPoints.size(); bool flag = false; i = j = n - k; maxSum = sum = 0; while(true) { sum += cardPoints[j]; if(j-i+1 == k || flag) { flag = true; maxSum = max(maxSum, sum); if(i == 0) break; sum -= cardPoints[i]; i = (i + 1) % n; } j = (j + 1) % n; } return maxSum; } ```
@dipanshuraj7868
@dipanshuraj7868 4 сағат бұрын
can anyone guide me why the two pointer approach is not working here that I am place i in the 0 and the J = n-1;
@thoughtsofkrishna8963
@thoughtsofkrishna8963 3 ай бұрын
We want Strings playlist Striver
@kuldeeprawat-zp7od
@kuldeeprawat-zp7od 6 ай бұрын
Hello everyone, another approach we can think of is We can take sum of all the elements and as according to example we want sum of 4 maximum elements with given conditions and the size of array is 9 so actually we can calculate the sum of 5 consecutive elements which is minimum among all and then we can subtract it from the total sum of all the elements of the array
@prasannasahoo0806
@prasannasahoo0806 4 ай бұрын
what about the elements in the middle ? how do we reach them ?
@mihiradarsh7604
@mihiradarsh7604 4 ай бұрын
You are only allowed to take
@ManishKumar-dk8hl
@ManishKumar-dk8hl 6 ай бұрын
JAVA BOLNE WALO K LIYE : -- class Solution { public int maxScore(int[] arr, int k) { int sum=0; for(int i=0;i
@jivanmainali1742
@jivanmainali1742 Ай бұрын
Where is it mentoned to keep consecutive number
@ShobhitVerma-j3f
@ShobhitVerma-j3f 14 күн бұрын
i think everyone is providing solution when N=2k+1, what if k is lesser than that??
@paulbarsha1740
@paulbarsha1740 2 ай бұрын
Why 2*k and not 2+k? Isn't 2 separate loop takes adding and nested takes multiplication?
@sohaildarwajkar9979
@sohaildarwajkar9979 7 күн бұрын
Bhai tu first year se wapas repeat kr
@sandeepgmore1483
@sandeepgmore1483 3 ай бұрын
@striver where can i get the source code solution for content
@sanukyadav
@sanukyadav 4 ай бұрын
Understood, implementing with pseudocode is not able to pass leetcode test cases! did i miss something! def (nums, k): lsum = 0 maxsum = 0 n = len(nums) for i in range(k-1): lsum = lsum + nums[i] maxsum = lsum r_idx = n-1 maxsum = 0 rsum = 0 for i in range(k-1, -1, -1): lsum = lsum - nums[i] rsum = rsum + nums[r_idx-i] r_idx = r_idx - 1 maxsum = max(maxsum, lsum+rsum) return maxsum
@vatsalpoddar6660
@vatsalpoddar6660 3 ай бұрын
int maxScore(vector& cardPoints, int k) { int n = cardPoints.size(); int left = k-1; int right = n-1; int maxSum = INT_MIN; int sum = 0; for(int i = 0; i < k; i++){ sum += cardPoints[i]; } maxSum = max(maxSum, sum); while(left >= 0){ sum = sum - cardPoints[left]; sum = sum + cardPoints[right]; maxSum = max(maxSum, sum); left--; right--; } return maxSum; }
@Josuke217
@Josuke217 2 ай бұрын
You set maxsum to 0 and r_idx-i is wrong
@angeldeveloper
@angeldeveloper 6 ай бұрын
🙌🏻
@vamsilanka5639
@vamsilanka5639 2 ай бұрын
optimal solution in another way ------------------------------------------------------ public int maxScore(int[] arr, int k) { int n = arr.length; int i = 1, j = 1; int sum = 0,maxsum = -1; int end = 2 * k; /// to consider only first k and last k elements while (j k) { sum -= arr[(n + k - i) % n]; i++; } if ((j - i) + 1 == k) maxsum = Math.max(sum, maxsum); j++; } return maxsum; } ----------------------------------------
@jitghosh3923
@jitghosh3923 6 ай бұрын
🙌
@THAKURPRAJWALSINGH-o7o
@THAKURPRAJWALSINGH-o7o 5 ай бұрын
class Solution { public: int maxScore(vector& nums, int k) { int lsum=0; int rsum = 0; int maxSum = 0; int n = nums.size(); for(int i=0;i=0;i--){ lsum=lsum-nums[i]; rsum=rsum+nums[rindex]; rindex=rindex-1; maxSum= max(maxSum,lsum+rsum); } return maxSum; } };this code not passing testcases in leetcode
@ManishLakkavatri
@ManishLakkavatri 4 ай бұрын
the condition in the first loop will be i < k or i
@DeorajMaharaj
@DeorajMaharaj 6 ай бұрын
bhaiya aap thora sick ya kaafi stressed lg rhe ho. Wo phle jaisa energy kahi na kahi missing laga.
@adityaroychowdhury3709
@adityaroychowdhury3709 6 ай бұрын
Subah uthe, aapke darshan hogye. Ab saare contest badia jayenge, sare hard question solve hone lag jayenge 😂😂
@dhruvmishra9781
@dhruvmishra9781 6 ай бұрын
bro konse year mein ho??
@aryankumar3018
@aryankumar3018 2 ай бұрын
US
@karthik-varma-1579
@karthik-varma-1579 11 күн бұрын
class Solution { public int maxScore(int[] cardPoints, int k) { long start = System.nanoTime(); int maxy = 0; int lsum = 0; int rsum = 0; for(int i=0;i=0;j--){ rsum = rsum + cardPoints[rightIndex]; rightIndex--; lsum = lsum - cardPoints[j]; maxy = Math.max(maxy,lsum+rsum); } long end = System.nanoTime(); System.out.println(end-start); return maxy; } }
@StudyYuv
@StudyYuv 2 ай бұрын
😀😀
@theskyraturi
@theskyraturi 6 күн бұрын
hil bhi ni rhe ye questions mujhse
@manasandmohit
@manasandmohit 6 ай бұрын
Are bhaiya itni fast fast
@saketjaiswalSJ
@saketjaiswalSJ 6 ай бұрын
class Solution { public: int maxScore(vector& a, int k) { int n=a.size(); int s1=0; int s2=0; int i=0; int j=n-k; while(j k. tk loop chala k times o(k) { s2=s2+a[j]; j++; } int maxi = s2; j=n-k; while(i
@SibiRanganathL
@SibiRanganathL Ай бұрын
Understood
@raghavmanish24
@raghavmanish24 4 ай бұрын
understood
@adityapandey23
@adityapandey23 2 ай бұрын
Understood
@AkashJaiswal-w4q
@AkashJaiswal-w4q 3 ай бұрын
understood
@ramakrishnakcr4417
@ramakrishnakcr4417 6 ай бұрын
understood
@shototodoroki4719
@shototodoroki4719 6 ай бұрын
understood
Крутой фокус + секрет! #shorts
00:10
Роман Magic
Рет қаралды 32 МЛН
Зу-зу Күлпаш 2. Бригадир.
43:03
ASTANATV Movie
Рет қаралды 412 М.
Don't look down on anyone#devil  #lilith  #funny  #shorts
00:12
Devil Lilith
Рет қаралды 41 МЛН
Офицер, я всё объясню
01:00
История одного вокалиста
Рет қаралды 6 МЛН
Sort 0s, 1s and 2s | GeeksForGeeks | Problem of the Day
10:23
L1. Introduction to Sliding Window and 2 Pointers | Templates | Patterns
36:55
L4. Max Consecutive Ones III | 2 Pointers and Sliding Window Playlist
29:58
L5. Fruit Into Baskets | 2 Pointers and Sliding Window Playlist
30:02
take U forward
Рет қаралды 70 М.
L12. Minimum Window Substring | 2 Pointers and Sliding Window Playlist
27:06
LeetCode was HARD until I Learned these 15 Patterns
13:00
Ashish Pratap Singh
Рет қаралды 422 М.
3 Sum | Brute -  Better - Optimal with Codes
38:25
take U forward
Рет қаралды 325 М.
Крутой фокус + секрет! #shorts
00:10
Роман Magic
Рет қаралды 32 МЛН