JavaScript || Faster than 95% ||Easy to understand ||With comments
\n/**\n * @param {number[]} stones\n * @return {number}\n */\nvar lastStoneWeight = function(stones) {\n    while(stones.length>1){\n        stones.sort((a,b)=>
```\n/**\n * @param {number[]} stones\n * @return {number}\n */\nvar lastStoneWeight = function(stones) {\n    while(stones.length>1){\n        stones.sort((a,b)=>b-a); //sort the remaining stones in decending order;\n        stones[1]=stones[0]-stones[1]; //smash the first and second stones ie the stones with largest weight ans assign the remaining stone weight to 1st index\n        stones.shift();//shift the array to get rid of the 0 index\n    }\n    return stones[0] //return the 0 index value ie the resultl\n};\n```\n\nIts okay if you did not get the solution in the first try, don\'t give up!\nPlease do UPVOTE if you find it helpfull.... I know this is not the best solution to this problem but this is what I came up with.\nHappy C0d1ng!! Cheers!
['JavaScript']