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

[Leetcode] Permutations II

Given a collection of numbers that might contain duplicates, return all possible unique permutations.

For example,
[1,1,2] have the following unique permutations:
[1,1,2][1,2,1], and [2,1,1].

 

注意不能用n!来判断了,可以先排一下序,当序列逆序时结束。

 1 class Solution {
 2 public:
 3     bool nextPermutation(vector<int> &num) {
 4         if (num.size() < 2) {
 5             return false;
 6         }
 7         int i, k;
 8         bool flag = true;
 9         for (i = num.size() - 2; i >= 0; --i) {
10             if (num[i] < num[i + 1]) {
11                 break;
12             }
13         }
14         if (i < 0) {
15             flag = false;
16         }
17         for (k = num.size() - 1; k > i; --k) {
18             if (num[k] > num[i]) {
19                 break;
20             }
21         }
22         swap(num[i], num[k]);
23         reverse(num.begin() + i + 1, num.end());
24         return flag;
25     }
26     
27     vector<vector<int> > permuteUnique(vector<int> &num) {
28         vector<vector<int> > res;
29         sort(num.begin(), num.end());
30         res.push_back(num);
31         while (nextPermutation(num)) {
32             res.push_back(num);
33         }
34         return res;
35     }
36 };

 

相关文章:

  • Acticles about Interface!
  • 【Camera专题】你应该熟悉的Camera驱动框架一(Hal层-kernel层)
  • HanLP分词命名实体提取详解
  • 染陌足迹——SeeConf2019
  • MyBatis-Plus 代码生成器
  • 归并排序(python)
  • C++学习札记(2011-10-06)
  • 蔚来汽车秦力洪:智能化与电动化天生融合,6大核心技术自主研发 | 电动汽车百人会 2019...
  • 杭电2090
  • Arcgis Runtime 100.3开发实例源代码调试日志
  • 上厅房,下厨房,ElasticSearch有的忙
  • Linux安装gitlab
  • 专家齐议尘肺病农民救助难点
  • Codeforces Round #532(Div. 2) A.Roman and Browser
  • 澳大利亚将开启全球人才计划 吸引优秀技术移民
  • 【个人向】《HTTP图解》阅后小结
  • CentOS7 安装JDK
  • download使用浅析
  • Github访问慢解决办法
  • Git同步原始仓库到Fork仓库中
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Python学习之路16-使用API
  • Python语法速览与机器学习开发环境搭建
  • React中的“虫洞”——Context
  • Vim Clutch | 面向脚踏板编程……
  • vue数据传递--我有特殊的实现技巧
  • vue学习系列(二)vue-cli
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 中文输入法与React文本输入框的问题与解决方案
  • ​Python 3 新特性:类型注解
  • (12)Linux 常见的三种进程状态
  • (52)只出现一次的数字III
  • (BFS)hdoj2377-Bus Pass
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (五)c52学习之旅-静态数码管
  • (译) 函数式 JS #1:简介
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (转)四层和七层负载均衡的区别
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Core 中的路径问题
  • .NET Micro Framework 4.2 beta 源码探析
  • .net wcf memory gates checking failed
  • .net 按比例显示图片的缩略图
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .net通用权限框架B/S (三)--MODEL层(2)
  • /proc/stat文件详解(翻译)
  • @ModelAttribute注解使用
  • [20150904]exp slow.txt
  • [BT]BUUCTF刷题第8天(3.26)
  • [gdc19]《战神4》中的全局光照技术