diff --git a/2099.find-subsequence-of-length-k-with-the-largest-sum.js b/2099.find-subsequence-of-length-k-with-the-largest-sum.js new file mode 100644 index 00000000..0d67f3ea --- /dev/null +++ b/2099.find-subsequence-of-length-k-with-the-largest-sum.js @@ -0,0 +1,22 @@ +/* URL of this problem + * https://leetcode.com/problems/find-subsequence-of-length-k-with-the-largest-sum/description/ + * + * @param {number[]} nums + * @param {number} k + * @return {number[]} + */ + +var maxSubsequence = function (nums, k) { + const NumsCopy = [...nums]; + + // Remove minimum numbers from NumsCopy until the length of NumsCopy reaches k + for (let i = 0; i < nums.length - k; i++) { + const MinNum = Math.min(...NumsCopy); + + NumsCopy.splice(NumsCopy.indexOf(MinNum), 1); + } + + return NumsCopy; +}; + +module.exports = maxSubsequence; diff --git a/maxSubsequence.test.js b/maxSubsequence.test.js new file mode 100644 index 00000000..4f9a28cf --- /dev/null +++ b/maxSubsequence.test.js @@ -0,0 +1,17 @@ +const maxSubsequence = require("../jest-test/2099.find-subsequence-of-length-k-with-the-largest-sum"); + +test("Return a subsequence of length k", () => { + expect(maxSubsequence([2, 1, 3, 3], 2)).toEqual([3, 3]); +}); + +test("Return a subsequence of length k with negative numbers", () => { + expect(maxSubsequence([-1, -2, 3, 4], 3)).toEqual([-1, 3, 4]); +}); + +test("Return the entire array if k is 0", () => { + expect(maxSubsequence([2, 1, 3, 3], 0)).toEqual([]); +}); + +test("Return an emtpy array if nums is emtpy", () => { + expect(maxSubsequence([], 1)).toEqual([]); +});