当前位置: 首页 > news >正文

哈尔滨网站建设nsstd.com网站底部友情链接

哈尔滨网站建设nsstd.com,网站底部友情链接,宁波做网站,大连做网站电话这道题的难点依旧是去重,但是与之前做过的子集类问题的区别就是,这里是求子序列,意味着我们不能先给数组中的元素排序。因为子序列中的元素的相对位置跟原数组中的相对位置是一样的,如果我们改变数组中元素的顺序,子序…

这道题的难点依旧是去重,但是与之前做过的子集类问题的区别就是,这里是求子序列,意味着我们不能先给数组中的元素排序。因为子序列中的元素的相对位置跟原数组中的相对位置是一样的,如果我们改变数组中元素的顺序,子序列也会发生改变。那么我们就不能使用之前用到过的去重方法,此题需要使用道哈希表,这样就可以实现去重的功能。哈希表的使用我们之前也练过不少题,这里就不详细说明了,忘记的同学可以看一下之前的博客。需要注意的是,我们需要在每一层递归中都定义一个新的哈希表,原因在于:往下递归子序列可以取重复的元素,但是在同一层递归的for循环中遍历时需要跳过重复的元素。其他的点比较好懂,大家可以结合我下面的代码及详细注释理解此题。

代码及详细注释如下:

class Solution {
public:vector<int> path;vector<vector<int>> result;void backtracking(vector<int>& nums,int start){//注意题目说了至少两个元素if(path.size() >= 2){result.push_back(path);}    //终止条件if(start >= nums.size()){return;}//每一层递归都需要定义一个新的哈希表unordered_set<int> uset;for(int i = start;i < nums.size();i++){//去重操作if((path.empty() != 1 && nums[i] < path.back()) || uset.find(nums[i]) != uset.end()){continue;}uset.insert(nums[i]);path.push_back(nums[i]);backtracking(nums,i + 1);path.pop_back();//注意哈希表并不需要回溯,因为每一层都有专门的哈希表来负责去重}}vector<vector<int>> findSubsequences(vector<int>& nums) {result.clear();path.clear();backtracking(nums,0);return result;}
};

http://www.hyszgw.com/news/894.html

相关文章:

  • 如何让单位网站做防护百度站长平台官网
  • 重庆大渡口营销型网站建设公司推荐潍坊快速网站排名
  • 武汉网站建设公司哪家专业合肥头条今日头条新闻最新消息
  • wordpress.org建站商丘seo
  • 做推广用那个网站吗百度入驻绍兴
  • 做短租哪个网站阿里指数
  • 团购网站app制作seo品牌优化
  • 怎么做网站广告位网站制作企业有哪些
  • 做封面的网站在哪里南京百度推广开户
  • 中山最好的网站建设武汉楼市最新消息
  • 万网封停慧聪事件最后怎么处理了优化百度搜索
  • 外贸柒夜网站建设网站统计分析工具
  • 毕设 代做 网站目前最新推广平台
  • 黄骅港属于哪个省哪个市广州推广优化
  • 太阳能公司网站建设多少钱什么是seo搜索优化
  • 域名怎么卖seo网站地图
  • 怎样为网站做外链广告设计自学教程
  • 重庆手机网站制作优速网站建设优化seo
  • 网络建设施工方案榜单优化
  • 怎么做网站描述软件开发一般需要多少钱
  • 浙江网站建设报价品牌策划公司介绍
  • 怎么用dw做响应式网站贵阳网站建设
  • 松江新城做网站重庆森林在线观看
  • 建英语网站好公司地址怎么弄在百度上显示
  • 用什么程序做网站微信朋友圈推广
  • 真人做爰网站视频教程河南网站建设制作
  • 网站会员和discuz会员同步地推接单平台找推网
  • 家居行业网站建设属于免费的网络营销方式
  • wordpress网站弹窗插件引流获客app下载
  • 徐州网站建设外包吉林seo外包