Rayman的绝顶之路——Leetcode每日一题打卡11
Leetcode46. 全排列 题目:
给定一个 没有重复 数字的序列,返回其所有可能的全排列。
示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
思路(回溯):
- 我们定义递归函数 output(first, output) 表示从左往右填到第first个位置,当前排列为 out。 那么整个递归函数分为两个情况:
- first==n时,说明我们已经填完了 n 个位置,找到了一个可行的解,我们将out 放入答案数组中,递归结束。
- 如果 first<n,需要考虑第 first 个位置要填哪个数。在填第 first 个数的时候我们遍历题目给定的 n 个数,如果这个数没有被标记过,尝试填入并将其标记,继续尝试填下一个位置,即调用函数 output(first + 1, output)。回溯的时候要撤销这一个位置填的数以及标记,并继续尝试其他没被标记过的数。
- 直至回溯结束。
Java AC代码:
import java.util.*;public class Leetcode46 {static List<List<Integer>> permute(int[] nums) {List<List<Integer>> res = new LinkedList<>();ArrayList<Integer> out = new ArrayList<>();for (int num : nums) {out.add(num);}output(nums.length, 0, out, res);return res;}static void output(int n, int first, ArrayList<Integer> out, List<List<Integer>> res) {if (first == n) {res.add(new ArrayList<>(out));}for (int i = first; i < n; i++) {//交换Collections.swap(out, first, i);output(n, first + 1, out, res);//还原Collections.swap(out, first, i);}}public static void main(String[] args) {List<List<Integer>> lists = permute(new int[]{1, 2, 3});for (List<Integer> list : lists) {System.out.println(list);}}
}
2020.4.25打卡
Rayman的绝顶之路——Leetcode每日一题打卡11相关推荐
- LeetCode每日一题打卡组队监督!刷题群!
近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ...
- 关于LeetCode每日一题打卡失败的感悟
背景 今年5月,报名参加了三叶姐的"五月打卡活动",押金29.9元,要求每天在力扣上每日一题打卡,完成则押金全退,完不成则押金不退. 事件 2022.5.10,LeetCode上的 ...
- Leetcode每日一题(914. 卡牌分组)
914. 卡牌分组 题目: 给定一副牌,每张牌上都写着一个整数. 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组: 每组都有 X 张牌. 组内所有的牌上都写着相同的整数 ...
- LeetCode 每日一题打卡:334.递增的三元子序列
题目 334.递增的三元子序列 题目大意 给你一个整数数组numsnumsnums ,判断这个数组中是否存在长度为333的递增子序列. 如果存在这样的三元组下标(i,j,k)(i, j, k)(i,j ...
- 【Leetcode 每日一题】514. 自由之路(BFS+优先队列)
Leetcode 每日一题 题目链接:514. 自由之路 难度: 困难 解题思路: 这道题乍一看,可以选择用动态规划或者BFS来求解.本文使用BFS来进行解答.注意到题中有一个最小的到路径.所以我们可 ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
- Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)
思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...
- 【LeetCode每日一题】1723. 完成所有工作的最短时间
[LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...
- leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用
leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...
- LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色
LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...
最新文章
- tomcat升级_「shell脚本」懒人运维之自动升级tomcat应用(war包)
- Quartus16.1布线优化选择,重编译可能会满足时序
- java.sql.sqlexception: 无效的名称模式:_PSQLException:错误:关系&ldquo; TABLE_NAME&rdquo;不存在...
- 苹果公司有“内鬼”!ID被盗后每条只卖10元钱
- git 本地重新关联新的远程仓库命令/查看本地关联远程仓库
- python分析推特_用Python关注者的关注者抓取Twitter数据的最快方法
- 计算机网络怎么寻址_计算机网络中的无类寻址
- 谷歌如何在设计上脱胎换骨
- OpenCV-图像处理(24、直方图计算)
- Linux:CentOS中SFTP工具的使用
- javascript 使用zlib发送wss请求,接收blob,并解压
- Exploring Architectural Ingredients of Adversarially Robust Deep Neural Networks
- x264源码分析与应用示例(二)——码率控制
- 多线段几何图形—— 简单几何图形(从线段中搜索封闭图形)
- linux7.6安装gcc,Centos7.6 安装gcc9
- 湖南省中职计算机应用教资笔试+面试心得
- 苹果显示itunes store无法连接服务器,ipad无法连接itunes store的图文解决办法
- Aop切面编程原理和Spring实现
- 以太坊 geth 命令相关
- ffmpeg h264文件转mp4