LeetCode491. Non-decreasing Subsequences

2023-11-28 17:45

本文主要是介绍LeetCode491. Non-decreasing Subsequences,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、题目
    • 二、题解

一、题目

Given an integer array nums, return all the different possible non-decreasing subsequences of the given array with at least two elements. You may return the answer in any order.

Example 1:

Input: nums = [4,6,7,7]
Output: [[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]
Example 2:

Input: nums = [4,4,3,2,1]
Output: [[4,4]]

Constraints:

1 <= nums.length <= 15
-100 <= nums[i] <= 100

二、题解

既可以使用unordered_map进行判断是否在同一层上有重复元素,也可以使用unordered_set进行去重

class Solution {
public:vector<int> path;vector<vector<int>> res;void backtracking(vector<int>& nums,int startIndex){if(path.size() > 1) res.push_back(path);unordered_map<int,int> map;for(int i = startIndex;i < nums.size();i++){if((!path.empty() && nums[i] < path.back()) || map[nums[i]] == 1) continue;map[nums[i]] = 1;path.push_back(nums[i]);backtracking(nums,i + 1);path.pop_back();}}vector<vector<int>> findSubsequences(vector<int>& nums) {backtracking(nums,0);return res;}
};

这篇关于LeetCode491. Non-decreasing Subsequences的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/430044

相关文章

Apache Flink:Keyed Window与Non-Keyed Window

Apache Flink中,Window操作在流式数据处理中是非常核心的一种抽象,它把一个无限流数据集分割成一个个有界的Window(或称为Bucket),然后就可以非常方便地定义作用于Window之上的各种计算操作。本文我们主要基于Apache Flink 1.4.0版本,说明Keyed Window与Non-Keyed Window的基本概念,然后分别对与其相关的WindowFunction

class _ContiguousArrayStorage deallocated with non-zero retain count

Xcode报错 : Object 0x11c614000 of class _ContiguousArrayStorage deallocated with non-zero retain count 2. This object's deinit, or something called from it, may have created a strong reference to self w

修改后无警告全面支持non-ARC以及ARC的OpenUDID

OpenUDID Open source initiative for a universal and persistent UDID solution for iOS. 首创的给iOS提供设备唯一标示符的一个开源代码. https://github.com/ylechelle/OpenUDID 使用很简单,引入头文件后执行下面一句话即可: 由于原版OpenUDI

null cannot be cast to non-null type android.databinding.ViewDataBinding

如果Build.gradle和Layout文件配置正确,仍无法生成ViewDataBinding类。 经测试,Gradle的sync无效,clean project无效,invalidate and restart无效,但是Build->Rebuild Project生效了。 还不行的话,使用ViewDataBinding抽象类的setVariable方法,也可以生效。 AS版本:3.1.3

Java 技术教程:@JsonInclude(JsonInclude.Include.NON_EMPTY) 注解详解

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰哦) 学习教程(传送门)Java 技术教程:@JsonInclude(JsonInclude.In

【精讲】PCIe基础篇——Non-Prefetchable Prefetchable MMIO

MMIO 有两种, Non-Prefetchable MMIO:非预取内存空间 Prefetchable MMIO :可预取内存空间 Prefetchable MMIO:将MMIO的一个区域设置为可预取的,允许CPU提前获取该区域中的数据,以预测请求者在不久的将来可能需要比实际请求更多的数据。对数据进行这种小规模缓存是安全的,因为读取数据不会改变目标设备上的任何状态信息。也就是说,

【QNX+Android虚拟化方案】105 - 如何替换 NON-HLOS.bin 中的 Wifi Firmware 固件

【QNX+Android虚拟化方案】105 - 如何替换 NON-HLOS.bin 中的 Wifi Firmware 固件 1、提取 NON-HLOS.bin 中的 Wifi Firmware 出来2、把提取出来的 wifi 固件放到代码中3、重新打包生成 NON-HLOS.bin4、将生成的 NON-HLOS.bin 与 老的 NON-HLOS.bin 对比5、使用fastboot 下载测

Cannot merge new index 65636 into a non-jumbo instruction

在将ADT和SDK Tool升级到最新(分别是21.1和16.0.1)之后,我的一个工程(相对比较大)在编译并运行的时候,出现错误,Eclipse控制台输出如下信息:       Unable to execute dex: Cannot merge new index 67208 into a non-jumbo instruction!       Conversion to Dalv

Introduction to the t Distribution (non-technical)

https://www.youtube.com/watch?v=Uv6nGIgZMVw

Android studio编译报non-zero exit value 2;错误

解决方法在工程的build.gradle中添加 multiDexEnabled true,如下所示: android {....defaultConfig {.....multiDexEnabled true} 补充:今天发现针对The number of method references in a .dex file cannot exceed 64K.这个错误,上述的方法同样有效 参