Reiteration is prevented by skipping to 2 indexes down if a match is found. I’m not clear on how 0.5 will help here since we are looking at full pairs values
Hello Bhavesh, thank you for your input. This is the first solution and not necessarily the most performant one as I have stated in the video. If you look at the gist that was created for this project here Sock merchant solutions you will that the second solution that is coming in part 2 is using the dictionary approach tou have suggested
Object.keys(colors).forEach( n => {
let _pair = parseInt( colors[n] / 2);
if ( _pair >= 1 ) pairs += _pair;
});
return pairs;
}
Since this is unassuming of who is watching and what the level is, I start with the simple easy to grasp and evolve to the 'better' solution, better being relative here.
Stay tuned for the next episode and the reasoning why solution 2 will be a better approach.
A better approach:
Runtime: O(n)
Iterate over A and store each values frequency as:
if i exists in D, then D[i]=D[i]+1
else, D[i]=1
Iterate over D and sum half of each key-value pair.
Could we add 0.5 to avoid reiteration and round up when getting the value for a specific color?
Reiteration is prevented by skipping to 2 indexes down if a match is found. I’m not clear on how 0.5 will help here since we are looking at full pairs values
Yes, you're right. I somehow didn't notice you were using i++ and i+=1.
Sorry.
The 0.5 comment was regarding Bavesh's step 4, sorry I was not clear.
Hello Bhavesh, thank you for your input. This is the first solution and not necessarily the most performant one as I have stated in the video. If you look at the gist that was created for this project here Sock merchant solutions you will that the second solution that is coming in part 2 is using the dictionary approach tou have suggested
javascript
function stockAndCount( n, arr ) {
let pairs = 0;
const colors = arr.reduce((acc, val) => {
(!!acc[val]) ? acc[val] += 1 : acc[val] = 1;
return acc;
}, {});
}
Since this is unassuming of who is watching and what the level is, I start with the simple easy to grasp and evolve to the 'better' solution, better being relative here.
Stay tuned for the next episode and the reasoning why solution 2 will be a better approach.
Cheers
Good work, Sir.