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

embedded/2024/9/23 20:27:01/

 实现

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");
}

 效果


http://www.ppmy.cn/embedded/26859.html

相关文章

实现C#无标题栏窗体拖动

要实现C#无标题栏窗体拖动&#xff0c;需要以下步骤&#xff1a; 首先&#xff0c;将窗体的FormBorderStyle属性设置为None&#xff0c;这将去除窗体的边框。 接下来&#xff0c;通过鼠标按下、移动和松开的事件来实现拖动功能。在窗体的MouseDown事件中&#xff0c;记录鼠标的…

美国国防部数据网格参考架构概述(下)

文章目录 前言四、行动者与角色五、基线服务与服务模式六、用例演示前言 DRMA从多个角度研究了CDAO数据网格的架构,以深入了解该网格将如何支持美国防部无缝访问联合数据、分析和基础设施以实现数字化转型和人工智能(AI)需求。它提供了一种战略性、原则性和技术性方法,通过…

JavaEE——Spring Boot入门

目录 &#x1f4da; JavaEE——Spring Boot入门 &#x1f527; 1. 新建Spring Boot项目 &#x1f6e0; 2. 添加pom依赖 &#x1f4dd; 3. 添加application.yml文件 &#x1f4c2; 4. 创建Dao层 &#x1f527; 5. 创建Service层 &#x1f5a5;️ 6. 创建Controller层及HT…

微服务保护和分布式事务(Sentinel、Seata)笔记

一、雪崩问题的解决的服务保护技术了解 二、Sentinel 2.1Sentinel入门 1.Sentinel的安装 &#xff08;1&#xff09;下载Sentinel的tar安装包先 &#xff08;2&#xff09;将jar包放在任意非中文、不包含特殊字符的目录下&#xff0c;重命名为 sentinel-dashboard.jar &…

word 表格 文字 上下居中

问题 word 表格 文字 上下居中 详细问题 笔者进行word 文档编辑&#xff0c;对于表格中的文本内容&#xff0c;如何进行上下居中&#xff1f; 解决方案 步骤1、选中需要进行操作的单元格 步骤2、右键 → \rightarrow →点击表格属性 步骤3、依次点击单元格 → \rightar…

FSNotes for Mac v6.7.1中文激活:轻量级笔记管理工具

FSNotes for Mac&#xff0c;一款专为Mac用户打造的轻量级笔记管理工具&#xff0c;让您的笔记管理变得简单而高效。 FSNotes for Mac v6.7.1中文激活版下载 它采用Markdown文件格式&#xff0c;让您轻松创建和编辑富文本笔记&#xff0c;无需担心格式问题。同时&#xff0c;FS…

Java面试题:解释强引用、软引用、弱引用和虚引用在Java中是如何工作的?

在Java中&#xff0c;引用&#xff08;Reference&#xff09;分为四种类型&#xff0c;它们定义了GC&#xff08;垃圾回收器&#xff09;如何看待对象的引用。不同的引用类型在GC时的行为是不同的&#xff0c;这允许程序员更精确地控制对象的生命周期。 强引用&#xff08;Stro…

[学习笔记] Android综合_2024-4-30

数据库注意&#xff1a; 前端与后端之间 要有事务、锁。 要用innodb才支持事务。 记得使用接口测试工具测试&#xff08;HTTP ResuestListener&#xff09;。 后端给前端发返回的数据类型一定要是map。 为了简洁&#xff0c;后端所有参数用post接口&#xff0c;别用get接口…