代码随想录训练营Day29回溯算法Part05|491.递增子序列|46.全排列|47.全排列 II

文章探讨了如何解决编程中的递增子序列问题,强调在树结构中进行去重,并提到了对于全排列问题的处理,包括无序集合unordered_set的使用以及对数组的处理。对于有重复元素的全排列问题,文章提出了排序和避免使用相同下标的策略。
摘要由CSDN通过智能技术生成

491.递增子序列

  • 这题注意要在“树层”上去重,“树枝”可以重复
  • 去重:unordered_set<int> hash,当hash.find(X) == hash.end()则不存在;或者用数组(此题中nums范围是-100~100,那将nums+100就可以)

46.全排列

  • 这是排列问题而不是组合问题
  • 排列问题的每一个解答都会用到所有元素,因此不需要startIndex,只需要记录使用过的数据下标即可

47.全排列 II

  • 是46排列问题和去重的结合
  • 我的想法:树层上去重+树枝上同46题,相同下标的数不可再用(但是和46不同的是,46中没有重复的数,而47中有重复的数,因此是对下标操作)
  • Carl:对数组先排序,就在树枝不适用相同下标的数上更为简单,树层去重也可以使用和以前一样的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值