小浩算法

vuePress-theme-reco geekxh.com    2019 - 2021
小浩算法 小浩算法

Choose mode

  • dark
  • auto
  • light
GitHub
author-avatar

geekxh.com

0

Article

0

Tag

GitHub
  • 学习须知

    • 小浩算法
    • 阅读指南
    • 资源下载
  • 指导学习

    • 指导学习(一)
    • 指导学习(二)
    • 指导学习(三)
  • 数组系列

    • 两个数组的交集(350)
    • 最长公共前缀(14)
    • 买卖股票的最佳时机(122)
    • 旋转数组(189)
    • 原地删除(27)
    • 加一(66)
    • 两数之和(1)
    • 三数之和(15)
    • Z字形变换(6)
  • 链表系列

    • 删除链表倒数第N个节点(19)
    • 合并两个有序链表(21)
    • 环形链表(141)
    • 两数相加(2)
  • 动态规划

    • 爬楼梯(70)
    • 最大子序和(53)
    • 最长上升子序列(300)
    • 三角形最小路径和(120)
    • 最小路径和(64)
    • 打家劫舍(198)
  • 字符串系列

    • 反转字符串(301)
    • 字符串中的第一个唯一字符(387)
    • 实现 Sunday 匹配
    • 大数打印
    • 验证回文串(125)
    • KMP(上篇)
    • 旋转字符串(796)
    • 最后一个单词的长度(58)
  • 二叉树系列

    • 最大深度与DFS(104)
    • 层次遍历与BFS(102)
    • BST与其验证(98)
    • BST 的查找(700)
    • BST 的删除(450)
    • 平衡二叉树(110)
    • 完全二叉树(222)
    • 二叉树的剪枝(814)
  • 回溯系列

    • 全排列算法
      • 01、全排列概念
      • 02、全排列题目
      • 03、题解分析
      • 04、总结
  • 滑动窗口系列

    • 滑动窗口最大值(239)
    • 无重复字符的最长子串(3)
    • 字母异位词(438)
    • 和为s的连续正数序列
  • 博弈论问题

    • 囚徒困境
    • 辛普森悖论
    • 红眼睛和蓝眼睛
    • 海盗分金币
    • 智猪博弈
    • 生男生女的问题
    • 硬币问题
    • 画圈圈的问题
    • 巧克力问题
    • 大鱼和小鱼的问题
  • 位运算系列

    • 使用位运算求和
    • 2的幂(231)
    • 返回二进制中1的个数(191)
    • 只出现一次的数字(136)
    • 只出现一次的数字Ⅱ(137)
    • 缺失数字(268)
  • 二分法系列

    • 爱吃香蕉的珂珂(875)
    • x的平方根(69)
    • 第一个错误的版本(287)
    • 旋转排序数组中的最小值Ⅰ(153)
    • 旋转排序数组中的最小值Ⅱ(154)
    • 供暖器(475)
  • 其他题目

    • 螺旋矩阵Ⅰ(54)
    • 只有两个键的键盘(650)
    • 24点游戏(679)
    • 飞机座位分配概率(1227)
    • 水分子的产生
    • 救生艇(881)
    • 25匹马的经典问题
    • 灯泡开关(319)
    • 三门问题
    • 猜数字游戏(299)
    • LRU缓存机制(146)
    • 最小的k个数
    • 不同路径
    • 不同路径 - 障碍物
    • 伪蒙特卡洛
    • 盛最多水的容器
    • 扑克牌中的顺子容器
    • 整数拆分(343)
    • 移动石子直到连续(1033)
    • Nim 游戏(292)
    • 寻找两个正序数组的中位数(292)
    • 第k个最大元素(215)
    • 镜面反射(858)
    • 整数转罗马数字(12)
    • 荷兰国旗问题
    • 六九问题
    • 有效的数独
    • 费米估算
    • 分发饼干
    • 生命游戏(289)
    • 搜索二维矩阵(74)
    • 子集(78)
    • 面试中的智力题
    • 图的基础知识
    • 旋转图像(48)
    • 螺旋矩阵Ⅱ(59)

全排列算法

vuePress-theme-reco geekxh.com    2019 - 2021

全排列算法


geekxh.com 2020-07-11

今天为大家分享如何用算法来求全排列!话不多说,直接看题!

# 01、全排列概念

什么是全排列?从 n 个不同元素中任取 m(m≤n)个元素,按照一定的顺序排列起来,叫做从 n 个不同元素中取出 m 个元素的一个排列。当 m=n 时所有的排列情况叫全排列。


比如 [1,2,3] 全排列共有 6 种:

PNG

# 02、全排列题目

然后把上面的全排列稍微改改,就变成了一道算法题。。。

全排列问题
给定一个 没有重复 数字的序列,返回其所有可能的全排列。

示例:

输入: [1,2,3]

输出:
[
  [1,2,3],
  [1,3,2],
  [2,1,3],
  [2,3,1],
  [3,1,2],
  [3,2,1]
]
1
2
3
4
5
6
7
8
9
10
11

# 03、题解分析

这种由基础数学知识改编而成的题目,在面试时还是很受欢迎的。因为作为面试官,可以用这种题目,来显示自己的博学。(谬论)


假如我们不是做算法题,而是做数学题。我们会一个位置一个位置的来考虑,先写出以1开头的排列,再写出以2开头的排列,最后写出以3开头的排列。