Java | Greedy | 5 lines | Clean code
Complexity\n- Time complexity: O(n * log(n))\n Add your time complexity here, e.g. O(n) \n\n- Space complexity: O(log(n)) used by the sorting algorithm\n Add yo
# Complexity\n- Time complexity: $$O(n * log(n))$$\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: $$O(log(n))$$ used by the sorting algorithm\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\n  public long maximumHappinessSum(int[] happiness, int k) {\n    var ans = 0L;\n    Arrays.sort(happiness);\n\n    for (var i=0; i<k; i++)\n      ans += Math.max(happiness[happiness.length - 1 - i] - i, 0);\n    \n    return ans;\n  }\n}\n```\nIf you like my solution, please upvote it!
['Array', 'Greedy', 'Sorting', 'Java']