leecode: Increasing Subsequences(JS解答)
直接上代码:
function findSubsequences(nums: number[]): number[][] {
let res:number[][] = [];
let temp:number[] = [];
helper(0, Number.MIN_SAFE_INTEGER,nums);
return res;
function helper(cur:number,last:number,nums:number[]){
if(cur == nums.length){
if(temp.length >= 2){ //符合条件的答案压入结果集
res.push([...temp]);
}
return;
}
if(nums[cur] >= last){ //当前指针所指的数字与上一次的数字相同或升序,last更新
temp.push(nums[cur]);
helper(cur+1, nums[cur], nums);
temp.pop();
}
if(nums[cur] != last){ //当前指针所指的数字与上一次的数字不同,last不更新
helper(cur+1, last, nums);
}
}
};