博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【一天一道LeetCode】#46. Permutations
阅读量:4197 次
发布时间:2019-05-26

本文共 874 字,大约阅读时间需要 2 分钟。

一天一道LeetCode系列

(一)题目

Given a collection of distinct numbers, return all possible permutations.

For example,

[1,2,3] have the following permutations:
[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].

(二)解题

求全排列数。具体思路可以参考这篇博客。

class Solution {public:    vector
> permute(vector
& nums) { vector
> ret; sort(nums.begin(),nums.end()); do{ ret.push_back(nums); }while(nextpermute(nums)); return ret; } bool nextpermute(vector
& nums) { int i = nums.size() -2; while(i>=0 && nums[i] > nums[i+1]) i--;//找到第一个破坏升序的数, int j = nums.size()-1; while(j>=0 && nums[j] < nums[i]) j--;//找到第一个大于i的数 if(i>=0) { swap(nums[i],nums[j]);//交换i和j reverse(nums.begin()+i+1,nums.end());//将i以后的数反转 return true;//如果还存在下一个全排列数就返回true } return false;//如果数组已经为倒序了就说明没有下一个了,返回false }};

转载地址:http://nayli.baihongyu.com/

你可能感兴趣的文章
Linux-SHELL常用命令
查看>>
Linux-网络运维基础
查看>>
Verilog编程网站学习——门电路、组合电路、时序电路
查看>>
android——学生信息显示和添加
查看>>
Android——ImageSwitcher轮流显示动画
查看>>
Android——利用手机端的文件存储和SQLite实现一个拍照图片管理系统
查看>>
图像调优1:清晰度相关参数MTF,SFR,MTF50,MTF50P 以及TVL的概念以及换算说明
查看>>
罗永浩欲直播带货,京东说可以帮忙联系
查看>>
B站,正在变成下一个“公众号”?
查看>>
小米启动安心服务月 手机家电产品可免费清洁保养
查看>>
刘作虎:一加新品将全系支持 5G
查看>>
滴滴顺风车上线新功能,特殊时期便捷出行
查看>>
不会延期!iPhone 12S预计如期在9月发售:升级三星LTPO屏幕
查看>>
腾讯物联网操作系统TencentOS tiny线上移植大赛,王者机器人、QQ公仔、定制开发板等礼品等你来拿 !
查看>>
为云而生,腾讯云服务器操作系统TencentOS内核正式开源
查看>>
腾讯汤道生:开源已成为许多技术驱动型产业重要的创新推动力
查看>>
微信小程序多端框架 kbone 开源
查看>>
视频质量评估算法 DVQA 正式开源
查看>>
腾讯优图开源视频动作检测算法DBG,打破两项世界纪录
查看>>
在中国提供了60亿次服务的疫情模块向世界开源 腾讯抗疫科技输出海外
查看>>