代码随想录算法-回溯4

news/2024/10/2 10:33:51

题目1 491. 非递减子序列

给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。

数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。

示例 1:

输入:nums = [4,6,7,7]
输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]

示例 2:

输入:nums = [4,4,3,2,1]
输出:[[4,4]]

提示:

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

代码

class Solution {
public:vector<vector<int>> result;vector<int> path;void pathtracking(vector<int>& nums, int curIndex){set<int> numset;if(path.size() >= 2){result.push_back(path);}for(int i = curIndex; i < nums.size(); i++){if((!path.empty() && path.back() > nums[i] )|| numset.find(nums[i]) != numset.end())continue;numset.insert(nums[i]);path.push_back(nums[i]);pathtracking(nums, i + 1);path.pop_back();}}vector<vector<int>> findSubsequences(vector<int>& nums) {if(nums.size() == 1)return vector<vector<int>>();pathtracking(nums, 0);return result;}
};

题目2 46. 全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

示例 1:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

示例 2:

输入:nums = [0,1]
输出:[[0,1],[1,0]]

示例 3:

输入:nums = [1]
输出:[[1]]

提示:

  • 1 <= nums.length <= 6
  • -10 <= nums[i] <= 10
  • nums 中的所有整数 互不相同

代码

class Solution {
public:bool hash[6] = {false};vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums){if(path.size() == nums.size()){result.push_back(path);return;}for(int i = 0; i < nums.size(); i++){if(hash[i])continue;path.push_back(nums[i]);hash[i] = true;backtracking(nums);path.pop_back();hash[i] = false;}}vector<vector<int>> permute(vector<int>& nums) {backtracking(nums);return result;}
};

题目3 47. 全排列 II

给定一个可包含重复数字的序列 nums按任意顺序 返回所有不重复的全排列。

示例 1:

输入:nums = [1,1,2]
输出:
[[1,1,2],[1,2,1],[2,1,1]]

示例 2:

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

提示:

  • 1 <= nums.length <= 8
  • -10 <= nums[i] <= 10

代码

class Solution {
public:vector<vector<int>> result;vector<int> path;bool hash[8] = {false};void backtracking(vector<int>& nums){if(path.size() == nums.size()){result.push_back(path);return;}unordered_set<int> uset;for(int i = 0; i < nums.size(); i++){if(hash[i] || uset.find(nums[i]) != uset.end())continue;uset.insert(nums[i]);path.push_back(nums[i]);hash[i] = true;backtracking(nums);path.pop_back();hash[i] = false; }}vector<vector<int>> permuteUnique(vector<int>& nums) {backtracking(nums);return move(result);}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/67034.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

前端无代码-表单页面的查看和编辑| uiotos致敬amis、appsmith、codewave、goview、dataroom、iotrouter、FUXA、乐吾乐、dooring等

上位机或管理系统,增删改查属于常规操作。其中以点击以查看和编辑,弹出表单页面,最为常见。 UIOTOS支持页面嵌套、属性继承(包括只读属性)。通过配置和连线,也能对表单页面区分查看和编辑,但有些繁琐。 可以利用容器组件的表单只读属性,勾选后,连线传入表单数据,将只…

前端零代码-技术原理:对话框嵌套和自定义按钮| uiotos致敬amis、appsmith、codewave、goview、dataroom、iotrouter、FUXA、乐吾乐、dooring等

对话框有默认标题头和脚,带有默认的取消、确定、关闭等按钮: 对话框编辑状态和运行状态 UIOTOS中对话框属常见容器,内容由任意其他页面嵌套而来。如下所示: UIOT…

数字经济与新质生产力:地理信息与遥感视角下的深度分析

在数字化浪潮的推动下,我们正见证着生产力的一次历史性飞跃。数字经济如何重塑生产力的三大要素:劳动对象、劳动资料和劳动者?让我们来深度分析数字经济如何推动新质生产力的发展。一、数字经济与地理信息的融合地理信息与遥感技术是数字经济中不可或缺的一环。它们为我们提…

土地资源的可持续管理:探索长期利用的绿色路径

在全球化与城市化的双重驱动下,土地资源的可持续管理已成为保障人类福祉与地球健康的迫切议题。本文将深入剖析实现土地资源长期可持续利用的策略与实践,从理论到实践,全方位探索这条绿色发展的必由之路。一、土地资源的现状与挑战当前,土地退化、耕地减少、城市蔓延、生态…

超轻巧modbus调试助手使用说明

一、使用说明 1.1 数据格式和其他的modbus采集工具一样,本组件也支持各种数据格式,其实就是高字节低字节的顺序。 一般是2字节表示一个数据,后面又有4字节表示一个数据,目前好像还有8字节表示一个数据的设备。 不同厂家的设备对应的字节顺序可能不同,要求可以自定义顺序,…

南沙C++信奥赛陈老师解一本通题 1984:【19CSPJ普及组】纪念品

​【题目描述】小伟突然获得一种超能力,他知道未来 T 天 NN种纪念品每天的价格。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。 每天,小伟可以进行以下两种交易无限次: 1.任选一个纪念品,若手上有足够金币,以当日价格购买该…

VMware ESXi 7.0U3q macOS Unlocker OEM BIOS 2.7 Dell HPE 联想定制版 9 月更新发布

VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 Dell HPE 联想定制版 9 月更新发布VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 标准版和厂商定制版 ESXi 7.0U3 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Fujitsu (富…

SQL Server 2022 RTM Cumulative Update #15 发布下载

SQL Server 2022 RTM Cumulative Update #15 发布下载SQL Server 2022 RTM Cumulative Update #15 发布下载 最新的累积更新 (CU) 下载,包含自 SQL Server 2022 RTM 发布以来的所有更新。 请访问原文链接:https://sysin.org/blog/sql-server-2022/,查看最新版。原创作品,转…