首页 > 其他分享 >NC 没有重复项数字的全排列

NC 没有重复项数字的全排列

时间:2024-08-06 19:55:04浏览次数:14  
标签:排列 重复 ArrayList NC list add num new

系列文章目录


文章目录


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


描述
给出一组数字,返回该组数字的所有排列
例如:
[1,2,3]的所有排列如下
[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2], [3,2,1].
(以数字在数组中的位置靠前为优先级,按字典序排列输出。)
在这里插入图片描述

import java.util.*;
public class Solution {
    // 存所有排列的集合
    ArrayList<ArrayList<Integer>> res = new ArrayList<>();
    public ArrayList<ArrayList<Integer>> permute(int[] num) {
        // 存一种排列
        LinkedList<Integer> list = new LinkedList<>();
        // 递归进行
        backTrack(num,list);
        return res;
    }

    public void backTrack(int[] num, LinkedList<Integer> list){
        // 当list中的长度等于数组的长度,则证明此时已经找到一种排列了
        if(list.size() == num.length){
            // add进返回结果集中
            res.add(new ArrayList<>(list));
            return;
        }
        // 遍历num数组
        for(int i = 0; i < num.length; i++){
            // 若当前位置中的数已经添加过了则跳过
            if(list.contains(num[i]))
                continue;
            // 选择该数
            list.add(num[i]);
            // 继续寻找
            backTrack(num,list);
            // 撤销最后一个
            list.removeLast();
        }
    }
}

标签:排列,重复,ArrayList,NC,list,add,num,new
From: https://blog.csdn.net/pleaseprintf/article/details/140896187

相关文章

  • [Typescript] Typing Functions with Object Params
    import{expect,it,vitest}from'vitest';constlogId=(obj:{id:string})=>{console.log(obj.id);};constlogName=(obj:{name:string})=>{console.log(obj.name);};constloggers=[logId,logName];constlogAll=(o......
  • 串行通信协议--UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器
    一、UART简介  UART广泛应用于微控制器和计算机之间的数据通信,如GPS模块、蓝牙模块、GSM模块等。UART是一种通用串行数据总线,用于异步通信,该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信UART通常被集成于其他通讯接口的连结上。UA......
  • [Typescript] Understanding TypeScript's Function Parameter Comparisons
    Makethosepass:import{Equal,Expect}from"@total-typescript/helpers";typeEvent="click"|"hover"|"scroll";typeCallbackType=unknown;constlistenToEvent=(callback:CallbackType)=>{};listen......
  • 5G-Advanced R18 中 RedCap放宽 Msg2-Msg3 时间线理解
    在5G网络中,随机接入过程(RandomAccessProcedure)是用户设备(UE)首次接入或重连到网络的关键过程。这一过程包括多个步骤,其中Msg2和Msg3是其中的两个重要信令消息。在5G-AdvancedR18中,为了适应低复杂度设备(如RedCap设备)的需求,Msg2-Msg3时间线被适当放宽,以提供更灵活的资源调度......
  • ComfyUI插件:efficiency-nodes-comfyui节点
    前言:学习ComfyUI是一场持久战,efficiency-nodes-comfyui是提高工作流创造效率的工具,包含效率节点整合工作流中的基础功能,比如EfficientLoader节点相当于LoadCheckpoint+Clipsetlayer+LoadVAE等等的合集,并且该插件提供了更加简便快捷的X/Y对比图,能够使测评工作的效率进一步提......
  • Function Calling + LangChain 拉通业务系统的技术架构
    近年来,大型语言模型(LLMs)如GPT-4的发展极大地推动了自然语言处理(NLP)领域的进步。这些模型在内容生成、语言翻译和对话系统等多个应用中展示了其强大的能力。然而,传统语言模型的局限性在于它们只能进行语言生成,无法与外部系统、API或自定义函数进行交互。本文将介绍如何通过Fu......
  • kotlin 与java 接口不兼容@FunctionalInterface
    需求:获取当前方法名为了获取当前方法名已知的有1.堆栈获取2.通过classs的enclosingMethod.name比较准确的是enclosingMethod,但是为了获取这个还需要一个内部类,于是用到了Runable,但是run方法没有返回值于是出现了神奇问题1.照Runnable抄一份:源码如下:@FunctionalInterfacepu......
  • BIOS1101 Evolutionary and Functional
    BIOS1101Evolutionaryand Functional Biology -2024GeneralCourseInformationCourseCode:  BIOS1101Year : 2024Term: Term2CourseDetails&OutcomesCourseDescriptionThis course examines the evolutionary history of life on earth fr......
  • CF568E Longest Increasing Subsequence 题解
    Description给定一个长度为\(n\)的有\(k\)个空缺的序列。你有\(m\)个数可以用于填补空缺。要求最大化最长上升子序列的长度。\(n,m\le10^5\),\(k\le10^3\)。Solution容易发现只需要先构造出LIS上的位置的值,对于其余未填位置随便填,所以构造LIS时就不需要考虑出......
  • python项目学习 mediapipe手势识别 opencv可视化显示
    importcv2importmediapipeimportnumpydefget_angle(vector1,vector2):#角度计算angle=numpy.dot(vector1,vector2)/(numpy.sqrt(numpy.sum(vector1*vector1))*numpy.sqrt(numpy.sum(vector2*vector2)))#cos(angle)=向量的点乘/向量的模angle=nump......