回溯算法——排列问题(力扣46:全排列)

前言

回溯算法这个系列我们之前已经总结过, 现在复习一下

  • 回溯算法是一种暴力的搜索算法, 坦白来讲就是穷举
  • 一般来说这些问题遇上了首先应当考虑回溯:组合问题, 排列问题, 子集问题, 切割问题, 棋盘问题(通常都是求所有可能
  • 回溯算法的本质是树形问题, 所有的回溯算法都可以通过树形结构来分析
  • 回溯的关键部分用到递归, 因此和递归一样, 考虑问题时只管当下
  • 回溯解题步骤(事实上还是递归的解题步骤)
    • 确立backTracking函数的参数和功能
    • 确立终止条件
    • 确定当前需要处理的所有可能值

例题: 全排列

题目描述:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案

输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

题目链接:46. 全排列 -

你可能感兴趣的:(算法,递归算法)