day25|排列 回溯

三道题目

  • 非递减子序列
  • 这个用 used 数组,避免同一个数添加到 path 数组里面多次
  • 全排列
  • 因为是所有可能的全排列, 所以每个数 都从头开始遍历。 同样用used 数组避免一个数添加多次
  • 全排列 2
  • 由于出现了重复的树,为了保证(a1,a2) 和(a2,a1) 只有一种排序(这里的a1和 a2 数值相同,只是说明遍历过程的两种情况),我们需要规定遍历时候的一个顺序。我们对原数组进行一个排序。 排序完之后因为不是组合所以必须从头开始遍历。 这样我们就无法利用对原数组排序后来避免重复的情况。
  • 一个简单的方法就是如果 a1 已经遍历过了,那么我们就自动跳过 a2 的从头遍历。
  • 显然此时就是a1 的 used 为 False 的情况(为 True 的情况表示仍然在遍历包含a1的排序)
  • 变为代码如下
for i in range(n):
  if used[i]:
    continue
  if i>0 and nums[i]==nums[i-1] and not used[i-1]:
    continue
    used[i]=True
    dfs(path+[nums[i]])
    used[i]=False

全部评论

相关推荐

昨天 11:18
门头沟学院 Java
作者先叠个甲:本人双非本,秋招拿到了多个大厂offer,这个过程也不容易,但是在看到很多秋招胜利之后说自己一路有多艰辛的文章,总感觉有一点不对劲,想了很久打算写一篇文章分析一下,本文仅代表作者观点,不认同的可以在评论区大家一起理性讨论。 秋招已经结束,各类社交平台出现一大批“大厂上岸”胜利结算。文章的叙事逻辑高度相同,开篇就渲染焦虑和困惑,学习时的挑灯夜读、投递时的屡屡碰壁、面试时的如履薄冰,将过往经历包装成一步艰辛的“奋斗史”,然后最终以大厂offer的胜利结尾,字里行间全是苦尽甘来的优越感。但是在我看来,这类文章的本质是结果导向的、带有浮夸的叙事,因为其内核不是分享经验,而是借“苦难”之名...
创作小队长:你的批判视角非常犀利,尤其“结果决定叙事权”的洞察非常精准,哈哈想邀请你来成为我们的创作者🫰 但我想补充一个视角:许多分享者的初衷并非炫耀结果或者苦难,我更愿意相信他们在这个过程中付出了很多,在这场战役结束后,他们迫不及待地想被看到,记录和分享都是给自己的一个交代,而非真的教会别人什么,他们的初衷未必是想制造焦虑。求职市场的残酷、经济环境的下行、世俗价值观才是这种叙事流行的土壤,作为一个普通人无法抵抗洪流。 感谢你发起这场讨论。理想的社区,既需要这样锐利的批判来保持清醒,你的洞察非常犀利,也许会启发一些人,能逐渐改变这种叙事~
点赞 评论 收藏
分享
2025-12-13 14:51
已编辑
井冈山大学 算法工程师
龙虾x:算法比你强的没有你美,比你美的…..算了已经没有比你美的了
工作两年想退休了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务