Skip to content

Commit 02e4414

Browse files
authored
Create 2098-subsequence-of-size-k-with-the-largest-even-sum.js
1 parent df2bef3 commit 02e4414

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number}
5+
*/
6+
const largestEvenSum = function(nums, k) {
7+
nums.sort((a, b) => b - a)
8+
let sum = 0
9+
for(let i = 0; i < k; i++) sum += nums[i]
10+
if(sum % 2 === 0) return sum
11+
12+
const INF = 10 ** 6
13+
let minOdd = INF, minEven = INF
14+
for(let i = 0; i < k; i++) {
15+
if(nums[i] % 2 === 0) minEven = Math.min(minEven, nums[i])
16+
else minOdd = Math.min(minOdd, nums[i])
17+
}
18+
19+
const n = nums.length
20+
let res = -1
21+
for(let i = k; i < n; i++) {
22+
if(nums[i] % 2 === 0 && minOdd !== INF) {
23+
res = Math.max(res, sum - minOdd + nums[i])
24+
}
25+
if(nums[i] % 2 === 1 && minEven !== INF) {
26+
res = Math.max(res, sum - minEven + nums[i])
27+
}
28+
}
29+
30+
return res
31+
};

0 commit comments

Comments
 (0)