首页 > 编程语言 >Java解决传递信息

Java解决传递信息

时间:2024-03-24 23:01:43浏览次数:31  
标签:Java level int nums List rs 传递信息 层数 解决

Java解决传递信息

01 题目

  • 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。

    示例 1:

    输入:nums = [1,2,3]
    输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
    

    示例 2:

    输入:nums = [0,1]
    输出:[[0,1],[1,0]]
    

    示例 3:

    输入:nums = [1]
    输出:[[1]]
    

    提示:

    • 1 <= nums.length <= 6
    • -10 <= nums[i] <= 10
    • nums 中的所有整数 互不相同

02 知识点

  • 递归
  • 动态规划

03 我的题解思路

public class permute {
	public static void main(String[] args) {
//		测试数据
		int[] nums= {1,1,2};
		List<List<Integer>> list=permute(nums);
		for (List<Integer> list2 : list) {
			for (Integer integer : list2) {
				System.out.print(integer+" ");
			}
			System.out.println();
		}
	}
	public static List<List<Integer>> permute(int[] nums) {
		List<List<Integer>> rs=new ArrayList<>();//返回值,记录了所有排列
		List<Integer> in=new ArrayList<>();//记录每一种排序
		for (Integer integer : nums) {
			in.add(integer);//循环整个数组,将值填入集合
		}
		//记录排列长度
		int n=nums.length;
//		从0开始递归,递归参数分别是当层排序,总排列,当前层数,总层数
		backtracking(in, rs, 0, n);
		return rs;
    }
	public static void backtracking(List<Integer> in,List<List<Integer>> rs,int level,int n) {
		if(level==n) {//当前层数等于总层数时,递归终止
			rs.add(new ArrayList<>(in));
			return;
		}
//		从当前层数开始循环,递归次数为(总层数-当前层数+1)
		for (int i = level; i < n; i++) {
//			利用Collections的封装方法,交换索引为level和i的in列表
			Collections.swap(in, level, i);
//			接着往下递归
			backtracking(in, rs, level+1, n);
//			当前递归结束后换回来
			Collections.swap(in, level, i);
		}
	}
}

标签:Java,level,int,nums,List,rs,传递信息,层数,解决
From: https://blog.csdn.net/2302_77182979/article/details/136889121

相关文章

  • Java解决最长相邻不相等子序列I
    Java解决最长相邻不相等子序列I01题目给你一个下标从0开始的字符串数组words,和一个下标从0开始的二进制数组groups,两个数组长度都是n。你需要从words中选出最长子序列。如果对于序列中的任何两个连续串,二进制数组groups中它们的对应元素不同,则word......
  • Java基础语法
    集成开发环境(IDE,IntegratedDevelopmentEnvironment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具,集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或软件套(组)都可以叫集成开发......
  • Java方法(下)
    Java方法(下)方法的重载重载就是在一个类中,有相同的函数名称,但形参不同的函数方法的重载的规则​1.方法的名称必须相同***2.参数列表必须不同(个数不同或类型不同或者参数排列顺序不同等)*** ​3.方法的返回类型可以相同也可以不同​4.仅仅返回类型不同不足以成为......
  • pip安装更新第三方库报错解决
    今天使用pip安装pyspark库的时候一直报错Collectingpyspark CouldnotfetchURLhttps://pypi.tuna.tsinghua.edu.cn/simple/pyspark/:Therewasaproblemconfirmingthesslcertificate:[SSL:CERTIFICATE_VERIFY_FAILED]certificateverifyfailed(_ssl.c:618)......
  • 学习java时候的笔记(一)
    输出语句System.out.println("abc");//先打印abc,再进行换行System.out.print("abc");//只打印abc,不换行System.out.println();//不打印任何数据,只做换行处理。变量变量的定义格式数据类型变量名=数据值;demopublicclassVariableDemo1{ //主入口 publi......
  • java:显示当前时间小程序
    publicclassCurrentTime{publicstaticvoidmain(String[]args){longt=System.currentTimeMillis();//求出的是毫秒longseconds=t/1000;//换算成秒longs=seconds%60;//求余数,是实际的秒数longminute=seconds/60;//求的是......
  • JavaScript 排序算法
    在这篇文章中,我将介绍几种常见的JavaScript排序算法,并对它们的原理和实现进行详细说明。排序算法是计算机科学中非常重要的基础知识之一,它们可以帮助我们对数据进行有效的整理和排序,提高程序的效率和性能。冒泡排序(BubbleSort)冒泡排序是最简单的排序算法之一,它通过不......
  • 类和对象.java
    1,类类(设计图):是对象共同特征的描述对象:是真实存在的具体事物在Java中,必须先设计类,才能有对象定义格式:class类名{成员变量;成员方法;}classgirl{//属性(成员变量)publicStringname;publicintage;publicStringgender;//行为publicvoi......
  • 上海阿里云代理商:阿里数据连接解决方案拿来干什么用
    目录上海阿里云代理商:阿里数据连接解决方案拿来干什么用引言数据连接解决方案概览技术优势分析实际应用场景客户成功案例结论与展望上海阿里云代理商:阿里数据连接解决方案拿来干什么用简介:飞机@luotuoemo本文由(阿里云国际站代理商:【聚搜云】www.4526.cn)撰写引......
  • 【JavaWeb】Day19.Vue组件库Element——常见组件
    一.Element常见组件-表格Table表格:用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。首先打开官网找到表格(Element-Theworld'smostpopularVueUIframework)以带边框表格为例,点击显示代码把代码复制到自己的vue项目中点击npm脚本运行,......