leetcode546_leetcode 5

leetcode546_leetcode 5DescriptionGivenacollectionofdistinctintegers,returnallpossiblepermutations.ExampleInput:[1,2,3]Output:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Description

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

Example

Input: [1,2,3]
Output:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]

Analyse

对给定的数列做个全排列,貌似这道题没有检查顺序,这时候就能偷个懒,用我们在031写的Next Permutation直接写就好了。

Code

class Solution { 
   
public:
    vector<vector<int>> permute(vector<int>& nums) { 
   
        vector<vector<int>> ans;
        vector<int> origin = nums;
        ans.push_back(origin);
        nextPermutation(nums);
        while (origin != nums) { 
   
            ans.push_back(nums);
            nextPermutation(nums);
        }
        return ans;
    }
    void nextPermutation(vector<int>& nums) { 
   
        if (nums.size() == 0) return;
        int i = nums.size() - 2, j;
        while(i >= 0 && nums[i] >=n ums[i+1]) i--;
        if(i >= 0) { 
     
            j = i + 1;  
            while(j <n ums.size() && nums[j] > nums[i]) j++;  
            j--;
            swap(nums[i], nums[j]);
        }
		i++; j = nums.size() - 1;
		while (i < j) { 
   
			swap(nums[i], nums[j]);
			i++; j--;
		}
	}
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191473.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月31日 下午3:43
下一篇 2026年1月31日 下午4:15


相关推荐

  • Python定义全局变量的用法

    Python定义全局变量的用法全局变量是编程语言中常见的一种变量 通过全局定义 可以是某对象函数创建 也可以是本程序任何位置创建 能够被本程序中的所有对象或函数进行引用 全局变量的定义有利于程序的变量共享 简化了添加和修改的程序 和 C 语言一样 Python 也具有全局变量 其定义全局变量的用法有两种 1 声明法该方法是直接在当前模块中进行全局变量定义声明 使用 global 的声明方式 再进行引用 OLD URL

    2026年3月18日
    2
  • Linux之cp命令详解

    Linux之cp命令详解1 1 前言 Linux 中使用 cp 命令复制文件 夹 本文就日常工作中常用的 cp 命令整理如下 1 2 复制一个源文件到目标文件 夹 命令格式为 cp 源文件目标文件 夹 这个是使用频率最多的命令 负责把一个源文件复制到目标文件 夹 下 如下图所示 复制到文件夹下 则文件名保持不变 复制到文件中 则文件名变更 如果目标文件已经存在或目标文件夹中含有同名文件 则复制之后目标文件或目标文件夹中的同名文件会被覆盖 cp 命令复制一个文件 1 3 同时复制多个文件到目标文件 夹 下命令格式为 cp 源文件

    2026年3月18日
    2
  • beta分布介绍

    beta分布介绍相信大家学过统计学的都对正态分布二项分布均匀分布等等很熟悉了 但是却鲜少有人去介绍 beta 分布的 用一句话来说 beta 分布可以看作一个概率的概率分布 当你不知道一个东西的具体概率是多少时 它可以给出了所有概率出现的可能性大小 举一个简单的例子 熟悉棒球运动的都知道有一个指标就是棒球击球率 battingavera 就是用一个运动员击中的球数除以击球的总数 我们一般认为 0 26

    2025年12月9日
    5
  • IDEA打WAR包

    IDEA打WAR包相信很多 IDEA 的初学 IDEA 的朋友一开始打 war 包找不到地方 不知道怎么弄 网上百度了很多 很多的博文简直牛头不对马嘴 可能不在一个频道吧 我也是刚接触 IDEA 不久 下面 将自己操作过程记录下来 希望能帮到需要的网友 1 打开 ProjectStruc 界面 快捷键是 F4 或者 F12 补充一下 如果快捷键不对的朋友 可以手动点击如下按钮 也是可以弹出上图界面第二步 选择 Ar

    2026年3月26日
    1
  • all in all是什么意思啊_22449.1000安装失败

    all in all是什么意思啊_22449.1000安装失败apache 无法启动 (98)Address already in use: AH00072 make_sock: could not bind to address 0.0.0.0:80…

    2022年4月20日
    52
  • Python中的dir和help

    Python中的dir和help

    2021年8月19日
    62

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号