leetcode516_leetcode46

leetcode516_leetcode46题目描述Givenacollectionofnumbers,returnallpossiblepermutations.Forexample,[1,2,3]havethefollowingpermutations:[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],and[3,2,1].分析代码publicList<

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

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

题目描述

Given a collection of numbers, return all possible permutations.

For example,
[1,2,3] have the following permutations:
[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].

分析


这里写图片描述

代码

    public List<List<Integer>> permute(int[] nums) {

        if (nums == null || nums.length == 0) {
            return new ArrayList<List<Integer>>();
        }

        ArrayList<List<Integer>> rt = new ArrayList<List<Integer>>();

        if (nums.length == 1) {
            rt.add(new ArrayList<Integer>(Arrays.asList(nums[0])));
        } else {

            for (int i = 0; i < nums.length; i++) {
                for (List<Integer> l : permute(resetof(nums, i))) {
                    l.add(nums[i]);
                    rt.add(l);
                }
            }
        }

        return rt;
    }

    private int[] resetof(int[] nums, int index) {

        int[] rt = new int[nums.length - 1];

        int s = 0;
        for (int i = 0; i < nums.length; i++) {
            if (i != index) {
                rt[s++] = nums[i];
            }
        }

        return rt;
    }

参考网址

Permutations

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python 中的几种copy用法「建议收藏」

    Python 中的几种copy用法「建议收藏」不知道在什么时候看到个好帖,觉得好就移过来了,学习学习。。。1.os.systemPythoncodePythoncode3.win32file.CopyFilePythoncodeP

    2022年7月5日
  • java xml与实体类转换「建议收藏」

    java xml与实体类转换「建议收藏」@XmlRootElement注解定义xml的根节点通过name改变根节点的xml值          @XmlRootElement(name=”amimal_test”)@XmlType注解指定序列生成的xml节点顺序         @XmlType(propOrder={“id”,”age”,”name”,”bir

    2022年7月21日
  • eclipse的svn使用教程_eclipse svn插件安装

    eclipse的svn使用教程_eclipse svn插件安装  SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信…

    2022年9月25日
  • c语言 xml解析库,轻量级C语言实现的minixml解析库入门教程

    c语言 xml解析库,轻量级C语言实现的minixml解析库入门教程svn上的minixml源码下载。svncohttp://svn.msweet.org/mxml/tags/release-2.7/按照下载回来的源代码进行编译和安装。本教程只针对新手做一个引导,大神见笑了,可以直接绕道。愿这个教程给你带来帮助。即:./configuremakemakeinstall随后就可以开始使用非常简洁的并可以跨很多平台的minixml更换平台只需要将xml库使用不同…

    2022年7月14日
  • webpack开发环境和生产环境_环境问题是如何产生和发展的

    webpack开发环境和生产环境_环境问题是如何产生和发展的前言如果我们需要使用webpack,就需要依赖node环境nvmnodenpmwebpack@cliwebpacknvm安装nvm是一个用来管理node版本的工具。我们之所以需要使用n

    2022年7月30日
  • laravel 微信公众号的Token无效解决的方案[通俗易懂]

    laravel 微信公众号的Token无效解决的方案[通俗易懂]laravel代码的编写<?phpnamespaceApp\Http\Controllers\Admin\Official;useIlluminate\Http\Request;useApp\Http\Controllers\Controller;useIlluminate\Support\Facades\DB;define(‘TOKEN’,’yunlive11′);classWxresponseMsgextendsController{ protecte.

    2022年9月13日

发表回复

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

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