491. 递增子序列
给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。
数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/increasing-subsequences
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
import java.util.*;
class Solution {
private List<List<Integer>> ans = new ArrayList<>();
private LinkedList<Integer> path = new LinkedList<>();
private void solve(int[] nums, int index, int prev) {
if (index == nums.length) {
if (path.size() >= 2) {
ans.add(new ArrayList<>(path));
}
return;
}
if (nums[index] != prev) {
solve(nums, index + 1, prev);
}
if (nums[index] >= prev) {
path.offerLast(nums[index]);
solve(nums, index + 1, nums[index]);
path.pollLast();
}
}
public List<List<Integer>> findSubsequences(int[] nums) {
solve(nums, 0, -101);
return ans;
}
}
心之所向,素履以往 生如逆旅,一苇以航

浙公网安备 33010602011771号