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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C++增强for循环[通俗易懂]

    C++增强for循环[通俗易懂]for循环是常见的代码语句,常规的for循环如下#include<iostream>usingnamespacestd;intmain(){ intarray[]={1,1,2,3,5,8}; //常规for循环 for(inti=0;i<sizeof(array)/sizeof(array[0]);i++) { cout<<array[i]<<“”; } cou…

    2022年6月15日
    74
  • isnotempty和isnotnull_BlankBlood

    isnotempty和isnotnull_BlankBlood先看看isEmpty和isBlank  从效果来看,当a=””,字符中有空格时,IsEmpty是算他不为空的本质上讲:isEmpty等价于str==null||str.length==0isBlank等价于str==null||str.length==0||str.trim().length==0我们再来看非空:is…

    2022年8月12日
    5
  • tomcat java_maven和tomcat的关系

    tomcat java_maven和tomcat的关系缓存什么是缓存[Cache]存在内存中的临时数据将用户经常查询的数据放在缓存(内存)中,用户去查询数据的时候就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存减少和数据库的数据交换次数,较少系统开销,提高系统效率什么样的数据库能使用缓存经常查询并且不经常改变的数据Mybatis缓存MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。默认情况下,只启用了本地的会话缓存,它仅

    2022年8月8日
    4
  • 大疆测评攻略

    他说大疆测评也刷人比例还很高总结来网上的有关注意事项都是各方面搬一点,总结一下测评的题主要为:性格测试,逻辑测试,计算题,场景题。这类的题⽬我能给你们的建议只是针对性格测试和场景题这类的主观性题。DJI大疆2019在线测评-知乎https://zhuanlan.zhihu.com/p/76053124大疆招聘网申测评测试笔试题https://zhuanlan.zhihu.com/p/157371591大疆在线测试三段论https://bbs.yingjiesheng.com/thr

    2022年4月4日
    97
  • linux tail 与 grep

    linux tail 与 greptail-f./a.txttail-f./a.txt./b.txttail-f./*.txttail-f./*.txt|grep–line-buffer’java’find-name’*.txt’-print0|xargs-0-t tail-f|grep–line-buffer’java’tail-10./a.txttail+10./…

    2022年6月4日
    47
  • XML格式化工具[通俗易懂]

    XML格式化工具[通俗易懂] 做接口开发的时候,往往接受参数或返回值是一个XML的字符串。如下图,不方便辨识两种方法,1.将它保存为xxx.xml,然后用浏览器打开。这种方法稍微有些麻烦。2.使用UltraEdit工具 …

    2022年7月16日
    8

发表回复

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

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