C# 88%
\npublic class Solution {\n    public int LastStoneWeight(int[] stones) {\n        List<int> stoneList = new List<int>(stones);\n        return stoneHelper(ston
```\npublic class Solution {\n    public int LastStoneWeight(int[] stones) {\n        List<int> stoneList = new List<int>(stones);\n        return stoneHelper(stoneList);\n    }\n    \n    public int stoneHelper(List<int> stones) {\n        \n        if(stones.Count == 0 )\n            return 0;\n        else if (stones.Count == 1)\n            return stones[0];\n        else  {\n            int max = stones.Max();\n            stones.Remove(max);\n            \n            int sMax = stones.Max();\n            stones.Remove(sMax);\n\n            if (sMax < max) {\n                stones.Add(max-sMax);\n            }\n            return stoneHelper(stones); \n        }\n    }\n}\n```
[]