what’s worong in this code - https://ide.codingblocks.com/s/358977
What's worong in this code - https://ide.codingblocks.com/s/358977
hello @hssharma2212000
greedy approach will not work on this problem because both the players are playing optimally.
we would need an optimal solution for this. At each instance we would need to consider two possibilities that we can pick the first as well as the last element of the remaining array. Both these possibilities give rise to two more possibilities depending on the other player. Since the second player plays optimally and try to minimise our score. So overall we have two possibilities at each instance.
For the first possibility , where we could pick the first element , the other player will pick the next element from the side that would minimise our total score.
Similarly , for the second possibility , where we can pick the last element , the other player would still pick the next element from the side that would minimise our total score.
We entertain both these cases and take the maximum result of the two and return that result.
We take two pointer variables , say ‘i’ and ‘j’ which each represent the starting and the ending point of the remaining array currently in consideration. We work till the two pointers cross each other.
code for reference->
can you please explain here what is the meaning of paying optimally
Hey @hssharma2212000 you revoked your doubt, paying optimally means that if there are two choices between x & y , then we will choose that value which is greater between x & y.
so thats mean a will select maximum of first and last . then b will select max of first and last of contracted array that is what i am doing so what’s wrong in my code
That’s because you are using greedy approach . try for an input
4
8 15 3 7
here expected output is 22(7+15)
but your’s is giving is 15
this question will only be solved using dp. So you have to follow the above code provided.
I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.
On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.