Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 0ce894c

Browse files
committed
Add solution #491
1 parent c813886 commit 0ce894c

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

0491-non-decreasing-subsequences.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/**
2+
* 491. Non-decreasing Subsequences
3+
* https://leetcode.com/problems/non-decreasing-subsequences/
4+
* Difficulty: Medium
5+
*
6+
* Given an integer array nums, return all the different possible non-decreasing
7+
* subsequences of the given array with at least two elements. You may return
8+
* the answer in any order.
9+
*/
10+
11+
/**
12+
* @param {number[]} nums
13+
* @return {number[][]}
14+
*/
15+
var findSubsequences = function(nums) {
16+
const result = new Set();
17+
backtrack(result, nums, 0, []);
18+
return Array.from(result).map(s => s.split(','));
19+
};
20+
21+
function backtrack(result, nums, offset, order) {
22+
if (order.length > 1) {
23+
result.add(order.join());
24+
}
25+
for (let index = offset; index < nums.length; index++) {
26+
if (!(order[order.length - 1] > nums[index])) {
27+
backtrack(result, nums, index + 1, [...order, nums[index]]);
28+
}
29+
}
30+
}

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@
160160
461|[Hamming Distance](./0461-hamming-distance.js)|Easy|
161161
463|[Island Perimeter](./0463-island-perimeter.js)|Medium|
162162
476|[Number Complement](./0476-number-complement.js)|Easy|
163+
491|[Non-decreasing Subsequences](./0491-non-decreasing-subsequences.js)|Medium|
163164
500|[Keyboard Row](./0500-keyboard-row.js)|Easy|
164165
506|[Relative Ranks](./0506-relative-ranks.js)|Easy|
165166
509|[Fibonacci Number](./0509-fibonacci-number.js)|Easy|

0 commit comments

Comments
 (0)