LeetCode 47. 全排列 II(回溯+搜索剪枝)

文章目录

    • 1. 题目信息
    • 2. 解题

1. 题目信息

给定一个可包含重复数字的序列,返回所有不重复的全排列。

示例:输入: [1,1,2]
输出:
[[1,1,2],[1,2,1],[2,1,1]
]

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/permutations-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

在leetcode46的基础上做修改
类似题目:
LeetCode 491. 递增子序列(回溯+判重)
LeetCode 996. 正方形数组的数目(回溯+剪枝)

  • 先对数组排序
  • 如果前一个数等于后一个数,且前者没有访问过,nums[i-1] == nums[i] && ! visited[i-1],则直接跳过

在这里插入图片描述

class Solution {
public:vector<vector<int>> permuteUnique(vector<int>& nums) {vector<int> row;vector<vector<int>> ans;bool occurred[nums.size()];memset(occurred, 0, sizeof(bool)*nums.size());sort(nums.begin(), nums.end());bt(nums, 0, occurred, row, ans);return ans;}void bt(vector<int>& nums, int count, bool *occurred, vector<int> row, vector<vector<int>>& ans){if(count == nums.size()){ans.push_back(row);   return;}for(int i = 0; i < nums.size(); ++i){if(occurred[i] == false){if(i >= 1 && nums[i-1] == nums[i] && !occurred[i-1])continue;	//搜索剪枝occurred[i] = true;row.push_back(nums[i]);bt(nums,count+1,occurred,row,ans);row.pop_back();occurred[i] = false;}}}
};
class Solution:def permuteUnique(self, nums: List[int]) -> List[List[int]]:import itertoolsreturn list(set(itertools.permutations(nums, len(nums))))

44 ms 15.2 MB Python3

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

会议 | 2019 全国知识图谱与语义大会 (CCKS 2019)

会议注册:http://www.ccks2019.cn/?page_id53会议地址与住宿&#xff1a;http://www.ccks2019.cn/?page_id366OpenKG开放知识图谱&#xff08;简称 OpenKG&#xff09;旨在促进中文知识图谱数据的开放与互联&#xff0c;促进知识图谱和语义技术的普及和广泛应用。点击阅读原文…

jieba分词太慢,怎么办?找jieba_fast

原文链接&#xff1a;https://www.rtnzero.com/archives/272.html 有时候感觉处理一个几十M的文本&#xff0c;要一分钟才能好&#xff0c;然后调试时各种心焦&#xff01; 下面举个例子&#xff1a; 归零有一个11.9M的文本文件&#xff0c;是一些抓取到的Python长尾关键词&am…

DGL_图的打印

首先要安装 networkx import matplotlib.pyplot as plt import networkx as nx import dgl import numpy as np def build_karate_club_graph():src np.array([1, 2, 2, 3, 3])dst np.array([0, 0, 1, 0, 1])u np.concatenate([src, dst])v np.concatenate([dst, src])ret…

闲鱼账号被封怎么办?解封看这里!

怎样避免宝贝被屏蔽、限流解封账号&#xff1f;首先我们要学会规避封号的风险 不要频繁的更改账号&#xff0c;不要多账号单手机操作&#xff0c;一机一号才是正确。 不要连续给人商品点赞或是我想要&#xff0c;连续的操作容易被封 不要发布违禁品&#xff0c;违禁品具体可…

推荐系统顶会RecSys’20亮点赏析

文 | banana源 | 知乎RecSys 2020原计划是在南美洲巴西举办&#xff0c;因为疫情的原因不得不改到线上。虽说线上举办会议&#xff0c;参会效果会打折扣&#xff0c;但也为远在北京的我提供了参会便利。得益于各方的努力和软件的应用&#xff0c;整体来看此次参会的效果高于我对…

技术研讨会 | 2019 恒生技术开放日产业链知识图谱专场开始报名

知识图谱旨在采用图结构 (Graph Structure) 来建模和记录世界万物之间的关联关系和知识&#xff0c;是互联网时代的知识工程方法&#xff0c;能够对纷繁复杂、多源异构的金融资讯大数据进行加工整合&#xff0c;提升决策分析的效率&#xff0c;已经得到金融行业从业人士的普遍认…

01.神经网络和深度学习 W1.深度学习概论

文章目录1. 什么是神经网络2. 使用神经网络进行监督学习3. 神经网络的兴起4. 练习题1. 什么是神经网络 它是一个强大的学习算法&#xff0c;类似于人脑的工作方式。 例子1. 单个神经网络 给定房地产市场上房屋大小的数据&#xff0c;预测其价格。这是一个线性回归问题。 …

中文任务型对话系统中的领域分类

大规模跨领域中文任务导向多轮对话数据集及模型CrossWOZ&#xff1a;项目地址&#xff1a;https://gitee.com/yh14232988/CrossWOZ?_fromgitee_search 具体介绍&#xff1a;https://cloud.tencent.com/developer/article/1617197 北邮张庆恒&#xff1a;如何基于 rasa 搭建一…

互联网热门职位薪酬报告

“ 很多同学毕业后想进入互联网领域&#xff0c;当前有什么热门的互联网工作机会&#xff0c;薪资结构怎么样&#xff1f;看图说话&#xff0c;我简短给 大家做一个回报。 互联网职位需求最热的TOP20 mikechen&#xff1a;我个人比较看好旅游、金融板块、医疗健康板块&#x…

算法岗面试前怎样高效刷题?

如果不是为了面试AI工程师刷题有用吗&#xff1f;把时间都放在项目上不香嘛&#xff1f;作为一个战五渣&#xff0c;我特地去观察和询问了身边很多精通此道的大神&#xff0c;他们对于“刷题”还是保持着认可的态度&#xff1a;很清晰地理解问题的本质&#xff0c;并进行合理的…

征稿 | JIST 2019 Regular Technical Papers

JIST 2019: The 9th Joint International Semantic Technology ConferenceNov. 25-27, 2019, Hangzhou, China.http://jist2019.openkg.cn/第 9 届国际语义技术联合会议 JIST 2019 将于今年 11 月在美丽的杭州召开&#xff0c;投稿截止日期临近 (Abstract submission: 23:59 (H…

DGL_子图

用途一&#xff1a;数据集太大&#xff0c;无法画图&#xff0c;取子图看看是有向图/无向图 import dgl import matplotlib.pyplot as plt import networkx as nx G dgl.DGLGraph() G.add_nodes(5) # G.add_edges([0, 1, 2, 3, 4], [1, 2, 3, 4, 0]) # 有向图 G.add_edges(…

史上最全互联网八大技术岗位详解

“互联网技术岗位详解&#xff0c;涉及到前段开发、后端开发、移动端开发、大数据、项目管理、测试、运维、技术管理等八大领域。 架构师 每个产品线都有架构师&#xff0c;在技术平台部门也需要技术平台的架构师。 架构师负责设计系统整体架构&#xff0c;从需求到设计的每个…

什么?!“路由器”也会做信息抽取了?

文 | 雨城编 | QvQ前几周&#xff0c;一个“撞脸”路由器的联合抽取模型TPLinker横空出世&#xff0c;将NYT数据集的分数直接刷上了90&#xff0c;提高了2个百分点。卖萌屋邀请到作者雨城&#xff0c;来聊一聊他们在关系抽取上的工作。目前&#xff0c;该工作已经被COLING 2020…

征稿 | ​第 9 届国际语义技术联合会议征稿(截稿日 9 月 8 号)

第 9 届国际语义技术联合会议 JIST2019 将于今年 11 月在美丽的杭州召开&#xff0c;投稿截止日期延迟至 9 月 8 日。现在征集优秀的研究论文&#xff0c;本届会议还专门设置了 special session track&#xff0c;优秀论文将被推荐到 SCI 期刊发表&#xff0c;目前已申请到 Sem…

LeetCode 142. 环形链表 II(链表环的检测)

文章目录1. 题目链接2. 解题1. 题目链接 给定一个链表&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 为了表示给定链表中的环&#xff0c;我们使用整数 pos 来表示链表尾连接到链表中的位置&#xff08;索引从 0 开始&#xff09;。 如…

一篇文章详解BAT薪资构成、晋升体系、绩效考核

“ BAT薪资、级别与晋升这一块&#xff0c;全国采取的都是一套体系&#xff0c;下面就为大家详细介绍腾讯、阿里巴巴、百度内部的薪资等级情况。 一&#xff1a;腾讯 薪资、级别与晋升这一块&#xff0c;BAT一般全国采取的都是一套体系&#xff0c;下面就为大家详细介绍。 1…

文末送书 | Facebook:易于解释的神经元可能会阻碍神经网络的学习

文 | Matthew Leavitt、Ari Morcos编 | 张倩、杜伟源 | 机器之心易于解释的神经元对于提升神经网络的性能来说是必要的吗&#xff1f;Facebook 的研究者给出了出人意料的答案。AI 模型能「理解」什么&#xff1f;为什么能理解这些东西&#xff1f;回答这些问题对于复现和改进 A…

技术动态 | ACL 2019 知识图谱的全方位总结

本文转载自公众号&#xff1a;AI科技评论。 ACL 2019 已经结束&#xff0c;但其空前的规模仍然震撼人心&#xff1a;2900多篇提交论文&#xff0c;660篇被接收&#xff0c;3000多名会议注册人员&#xff0c;以及4个超过400人的研讨会&#xff08;比一些国际CS会议都大&#xff…

LeetCode 287. 寻找重复数(BitMap)

文章目录1. 题目信息2. 解题2.1 BitMap2.2 set去重2.3 官方解题&#xff0c;快慢指针1. 题目信息 给定一个包含 n 1 个整数的数组 nums&#xff0c;其数字都在 1 到 n 之间&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设只有一个重复的整…