Unity 递归实现数字不重复的排列组合

2024-04-29 09:20

本文主要是介绍Unity 递归实现数字不重复的排列组合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 实现

private void Permutation(List<int> num, int leftIndex, List<string> strs)
{if (leftIndex < num.Count){for (int rightIndex = leftIndex; rightIndex < num.Count; rightIndex++){Swap(num, leftIndex, rightIndex);Permutation(num, leftIndex + 1, strs);Swap(num, rightIndex, leftIndex);}}else{string s = string.Empty;for (int i = 0; i < num.Count; i++){s += num[i].ToString();if (i < num.Count - 1)s += "→";}strs.Add(s);}
}
void Swap(List<int> num, int leftIndex, int rightIndex)
{int temp = num[leftIndex];num[leftIndex] = num[rightIndex];num[rightIndex] = temp;
}

示例

List<int> num = new List<int>() { 1, 2 };
Permutation(num);
num = new List<int>() { 1, 2, 3 };
Permutation(num);private void Permutation(List<int> num)
{List<string> strs = new List<string>();Permutation(num, 0, strs);string strNum = string.Empty;for (int i = 0; i < num.Count; i++){strNum += num[i].ToString();if (i < num.Count - 1)strNum += ",";}Debug.Log(strNum + " 排列组合共 " + strs.Count + " 组");for (int i = 0; i < strs.Count; i++)Debug.Log(strs[i] + "\n");
}

 效果

这篇关于Unity 递归实现数字不重复的排列组合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/945705

相关文章

javascript实现页面的重新加载和页面的刷新

1、reload 方法,该方法强迫浏览器刷新当前页面。 语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5(“刷新”) 2、 replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用

智能数字人短视频合成平台软件系统 可录音驱动数字人,支持所有平台直播 功能强大

系统概述 智能数字人短视频合成平台软件系统是一款集成了先进AI技术的创新产品。该系统通过深度学习、自然语言处理、计算机视觉等技术,实现了数字人的自动化生成和编辑。用户只需通过简单的录音操作,即可驱动数字人进行表情、动作和语言的实时模拟,从而快速生成高质量的短视频内容。此外,该系统还支持所有主流直播平台的接入,为用户提供了更广阔的展示舞台。 代码示例 系统的核心功能     1.可录音驱动数

【案例】使用Vue实现标题项元素上下移动

效果图  效果说明 每一组数据只能在对应的二级类目中进行上下移动,当点击上移图标的时候【左边的】会将当前元素与上一个元素交换位置,当点击的元素为该组的第一个元素时,将提示已经是第一项了并且不能进行移动;当点击下移图标的时候【右边的】会将当前元素与下一个元素交换位置,当点击的元素为该组的最后一个元素时,将提示已经是最后一项了并且不能进行移动。 效果实现代码 本效果需要用到 vue、vur

【微信小程序开发】深入探索事件绑定、事件冒泡、页面跳转的逻辑实现

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

【C++】深度解析:用 C++ 模拟实现 String 类,探索其底层实现细节

目录 了解string类 string的内存管理 VS下string的结构 ​g++下string的结构  string的模拟实现 string的构造函数  浅拷贝 深拷贝  string的遍历 重载 [] 下标访问 迭代器访问 reserve resize  增删查改 push_back() append和+=  insert和erase find su

Android自定义View的实现方法(转自郭霖博客)

一些接触Android不久的朋友对自定义View都有一丝畏惧感,总感觉这是一个比较高级的技术,但其实自定义View并不复杂,有时候只需要简单几行代码就可以完成了。 如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件、组合控件、以及继承控件。那么下面我们就来依次学习一下,每种方式分别是如何自定义View的。 一、自绘控件(完全自己画) 自绘控件的意思就是,这个Vi

【每日一练及解题思路V2】给定一个字符串,找出其中不含重复字符的最长子串的长度

【每日一练及解题思路V2】给定一个字符串,找出其中不含重复字符的最长子串的长度 一、题目:给定一个字符串,找出其中不含重复字符的最长子串的长度: 二、举例: 比如"abcdefgh",不含重复字符的最长子串为eacdb,长度为8;比如"abceacdb",不含重复字符的最长子串为eacdb,长度为5;比如"aaaabcbb",不含重复字符的最长子串为abc,长度为3;比如"pwwkewww"

剑指offer面试题7——用两个栈实现队列

package offer7;import common.Stack;/*** 用两个栈实现一个队列* @author chibozhou*/public class Queue<T> {//队列当前大小private int curSize;//队列最大容量private int maxSize;//两个栈private Stack<T> stack1;private Stack<T> sta

Leetcode—287. 寻找重复数【中等】(快慢指针算法)

2024每日刷题(136) Leetcode—287. 寻找重复数 快慢指针算法思想 low = fast 时,快慢指针相遇,low 走过的距离是初始点(0)到环状开始的点 (x) 加上 环状开始的点(x) 到相遇点(y) 这段距离,而fast走过的距离是 初始点(0)到环状开始的点(x),点(x) 到点(y),点(y)到点(x),点(x)到点(y)。又因为fast走过的距离是low的两

如何实现数字化校园的高效运维

随着科技开展,国家大力支持各级各类学校建造数字化学校,综合利用互联网、大数据、人工智能和虚拟现实技能探究未来教育教育新模式。因为数字化学校的快速开展,学校网内设备类型很多,网络拓扑杂乱,信息运用繁复。各部门运用不同事务运用,各自进行设备办理和渠道保护,从而构成设备的重复建造,网络办理十分繁琐。   因而,怎么在教育信息化运维过程中,加速推动数字化学校的完成,提高数字化学校渠道的“智能”,