Skip to content

Commit 05c3b7c

Browse files
solves minimum subsequence in non increasing order
1 parent a0d93cb commit 05c3b7c

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@
356356
| 1389 | [Create Target Array in Given Order](https://leetcode.com/problems/create-target-array-in-the-given-order) | [![Java](assets/java.png)](src/CreateTargetArrayInGivenOrder.java) | |
357357
| 1394 | [Find Lucky Integer In An Array](https://leetcode.com/problems/find-lucky-integer-in-an-array) | [![Java](assets/java.png)](src/FindTheLuckyIntegerInAnArray.java) | |
358358
| 1399 | [Count Largest Group](https://leetcode.com/problems/count-largest-group) | [![Java](assets/java.png)](src/CountLargestGroup.java) | |
359-
| 1403 | [Minimum Subsequence in Non-Increasing Order](https://leetcode.com/problems/minimum-subsequence-in-non-increasing-order) | | |
359+
| 1403 | [Minimum Subsequence in Non-Increasing Order](https://leetcode.com/problems/minimum-subsequence-in-non-increasing-order) | [![Java](assets/java.png)](src/MinimumSubSequenceInNonIncreasingOrder.java) | |
360360
| 1408 | [String Matching In An Array](https://leetcode.com/problems/string-matching-in-an-array) | | |
361361
| 1413 | [Minimum Value To Get Positive Step By Step Sum](https://leetcode.com/problems/minimum-value-to-get-positive-step-by-step-sum) | | |
362362
| 1417 | [Reformat The String](https://leetcode.com/problems/reformat-the-string) | | |

Diff for: src/MinimumSubSequenceInNonIncreasingOrder.java

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import java.util.ArrayList;
2+
import java.util.Arrays;
3+
import java.util.List;
4+
5+
public class MinimumSubSequenceInNonIncreasingOrder {
6+
public List<Integer> minSubsequence(int[] array) {
7+
Arrays.sort(array);
8+
final int sum = Arrays.stream(array).sum();
9+
final List<Integer> result = new ArrayList<>();
10+
result.add(array[array.length - 1]);
11+
for (int index = array.length - 2, current = array[array.length - 1] ; index >= 0 ; index--) {
12+
if (current > sum - current) break;
13+
current += array[index];
14+
result.add(array[index]);
15+
}
16+
return result;
17+
}
18+
}

0 commit comments

Comments
 (0)