I think tree map insertion time complexity is logn. So inserting n elements will have a time complexity of nlongn and not n.
@jritzeku
8 ай бұрын
I just finished your strings playlist in which you had similar problem. In that, you used the pointer approach. I used similar strategy: function missingNums(a1, a2) { let i = 0//pointer for a1 let result = [] for (let j = 0; j < a2.length; j++) { if (a2[j] === a1[i]) { i++ } else { result.push(a2[j]) } } //sort in ascending order return result.sort((a, b) => a - b) } Which approach would be considered better?
@nikoo28
8 ай бұрын
What is the time complexity of your approach?
@vinoddiwan5792
3 жыл бұрын
Amazing, amazing, amazing...............
@ambiliprasadr
11 ай бұрын
Hi Nikhil, Great Explanation. Can I ask you a doubt? I tried to work below code ,passed test cases except test case 1. Any suggestion would be appreciated def missingNumbers(arr, brr): brr_copy = brr.copy() # Create a copy of brr to avoid modifying the original list for i in arr: if i in brr_copy: brr_copy.remove(i) return sorted(brr_copy)
@nikoo28
10 ай бұрын
have you tried to debug with some test cases?
@shreysom2060
3 жыл бұрын
Great explanation brother
@sikderabdurrahmanjony8741
3 жыл бұрын
THANK YOU BROTHER.
@unemployedcse3514
4 ай бұрын
awesome ❤
@Robert-ob8bu
3 жыл бұрын
1 test case is failing by use of map.......i also did while loop to managee multiple frequencies ....even then its failing 1 test case
@nikoo28
3 жыл бұрын
Can you give me an example of the test case. The solution I submitted on hackerrank passes all cases.
@arundoss6785
3 жыл бұрын
Awesome 😊😎
@shenth27
Жыл бұрын
I'm not a java guy but wonder time complexity of TreeMap to maintan the items in sorted order.
@nikoo28
Жыл бұрын
A TreeMap almost works in constant time.
@shreysom2060
3 жыл бұрын
in case of repeted freequency that is if 1 is more than 1 then the code is not right.
@nikoo28
3 жыл бұрын
The code is correct. We subtract frequency by "1" for every repeated number. Can you show me a test case for which the code fails?
@shreysom2060
3 жыл бұрын
@@nikoo28 i mean in case where 2 times 1 is there in IntegeerFreqmap after removing numbers from arr then in final loop how times 1 will be inserted. as result[i++]=IntegeerFreqmap.getKey() value in . We are not checking frequency to put in resultSet.
@nikoo28
3 жыл бұрын
Let us go over it step by step. Suppose you have two 1’s In the first loop you create the map and the frequency would be stored as “1 -> 2” In the next loop if you find one 1 in the other array you subtract a frequency so the map changes to “1 -> 1” In the final loop you look at the remaining elements in the frequency map. You find a frequency and hence the code works.
@shreysom2060
3 жыл бұрын
@@nikoo28 got it I was thinking some else thing only read the question again thankyou so much
@vilakshan.s
4 ай бұрын
Still have similar doubt. What if in second array both the two 1s got missed from array 1 then in the MAP you will have like 1->2 then for such frequencies you will have to add the 1 entry 2 times in the final output
@premanathareddydodda7565
2 жыл бұрын
can i use for this solution stream api in java?
@nikoo28
2 жыл бұрын
Yes, you should be able to
@meghanagowda9967
17 күн бұрын
Can Someone give code in Python
@AjayMishra-ix3kj
3 жыл бұрын
Is there another way to solve it???
@nikoo28
3 жыл бұрын
You can try to solve it using a frequency array where each index stores the count of each element in first array
Пікірлер: 32