力扣 78. 子集

news/2024/11/17 22:26:42/

题目来源:https://leetcode.cn/problems/subsets/description/

 C++题解1:递归回溯法。由于是求子集,所以根据nums.size()遍历每个子集的长度,并进行回溯。

class Solution {
public:vector<vector<int>> res;vector<int> sub;void backtracking(vector<int> nums, int ind, int num) {if(sub.size() == num) {res.push_back(sub);return;}for(int i = ind; i < nums.size(); i++) {sub.push_back(nums[i]);backtracking(nums, i + 1, num);sub.pop_back();}}vector<vector<int>> subsets(vector<int>& nums) {int len = nums.size();for(int j = 0; j <= len; j++) {backtracking(nums, 0, j);}return res;}
};

C++题解2(来源代码随想录):不断地从自身开始收集子集,直到末尾。所以不用更新目标子集的长度。

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& nums, int startIndex) {result.push_back(path); // 收集子集,要放在终止添加的上面,否则会漏掉自己if (startIndex >= nums.size()) { // 终止条件可以不加return;}for (int i = startIndex; i < nums.size(); i++) {path.push_back(nums[i]);backtracking(nums, i + 1);path.pop_back();}}
public:vector<vector<int>> subsets(vector<int>& nums) {result.clear();path.clear();backtracking(nums, 0);return result;}
};


http://www.ppmy.cn/news/749980.html

相关文章

7.6机试练习

1. 2105 IP Address 描述 Suppose you are reading byte streams from any device, representing IP addresses. Your task is to convert a 32 characters long sequence of ‘1s’ and ‘0s’ (bits) to a dotted decimal format. A dotted decimal format for an IP addres…

车灯线光源的优化设计matlab,车灯线光源的优化设计

车灯线光源的优化设计摘要本题主要以车灯线光源的优化设计为研究对象&#xff0c;在研究过程中建立了线性规化模型&#xff0c;给出算法并利用MATLAB软件求解。针对问题一&#xff0c;首先将线光源长度及其折射面离散化处理&#xff0c;将线光源的散射问题转换为光线间的折射问…

从零实现一款12306抢票软件

写在前面的话 每年逢年过节&#xff0c;一票难求读者肯定不陌生。这篇文章&#xff0c;我们带领读者从零实现一款12306刷票软件&#xff0c;其核心原理还是通过发送http请求模拟登录12306网站的购票的过程&#xff0c;最后买到票。 关于http请求的格式和如何组装http数据包给…

Scatter文件的编写、分析

ARM编程&#xff1a;Scatter文件的编写、分析2009-03-19 18:10今天拿了被同事扔一边的ARM培训资料翻阅&#xff0c;读至scatter一节&#xff0c;发现写得甚是精辟。之前看的很多国人写得文章&#xff0c;未免有简单问题复杂化之嫌。而ARM的RVCT手册又偏冗长&#xff0c;不易让人…

3D中的常用材质的调整方法

一、木纹材质调整方法 1&#xff0e; 木纹材质的肌理调整&#xff1a; A&#xff0e;使用过度色通道贴图后加入凹凸通道贴图&#xff0c;使木纹有凹凸感&#xff0c;肌理更明显凹凸通道强度通常为30% B&#xff0e;材质球的高光强度&#xff08;specular level:&#xff09;…

C++高级用法简单应用及docker的使用技巧

//std::move的移动构造函数的简单使用; #include using namespace std; int main() { std::string str(“hello”); std::vectorstd::string strvec; strvec.push_back(str); cout<<str<<endl; strvec.push_back(std::move(str)); //调用std::move移动构造函数&a…

Hadoop2.6分布式 automatic HA+Federation+Yarn教程

一、前言 与Hadoop1.x相比&#xff0c;Hadoop2.x中的NameNode不再是只有一个了&#xff0c;可以有多个&#xff08;目前只支持2个&#xff09;。每一个都有相同的职能。 这两个NameNode的地位如何哪&#xff1f; 答&#xff1a;一个是active状态的&#xff0c;一个是standby…

katago安装使用

看了今天柯洁和大申的比赛, AI还是太强了 本文介绍的是windows下如何配置 项目下载地址: https://github.com/lightvector/KataGo/releases 有显卡的推荐opencl版本, 作者推荐理由 OpenCL vs CUDA vs Eigen KataGo has three backends, OpenCL (GPU), CUDA (GPU), and Eigen…