这道题其实和上一篇文章《含重复字符的字符数组的全排列》代码很相似,这是做了一点改进,删除了isExist()函数,并在else块做了修改。
代码如下:
public class allArray {
public static int num = 0;//计数器
/*
* Array实现无重复字符的数组的全排列 list是字符数组,i是指示当前位置的游标,length是数组长度
* 注释:这个函数最核心的地方,我感觉是else块的代码
*/
public void Array(char list[], int i, int length) {
if (i == length - 1) {
for (int j = 0; j < length; j++) {
num++;
System.out.print(list[j]);
}
System.out.println(num/length);
} else {
for (int j = i; j < length; j++) {
swap(list, i, j);// 交换当前值和当前位置之后的值
Array(list, i + 1, length);// 当前位置+1,递归
swap(list, i, j);// 再交换
}
}
}
/*
* swap实现了数组中两个位置的值的交换 list是字符数组,i,j表示要交换的位置
*/
public void swap(char list[], int i, int j) {
char temp = list[i];
list[i] = list[j];
list[j] = temp;
}
public static void main(String[] args) {
char a[] = { 'a', 'b', 'c', 'd','e','f'};// 以这个字符数组为例
allArray array = new allArray();
array.Array(a, 0, a.length);
}
}
分享到:
相关推荐
主要介绍了Java实现字符数组全排列的方法,涉及Java针对字符数组的遍历及排序算法的实现技巧,需要的朋友可以参考下
主要介绍了C#求数组中元素全排列的方法,较为详细的分析了数组全排列算法的原理与实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
树 * 字典树 * 遍历-层次遍历 * 遍历-中序遍历-非递归 * 遍历-前序遍历-非递归 * 遍历-后序遍历-非递归 * 二叉查找树-两数之和 ...数组&字符串 查找排序 排列组合 动态规划 树 链表 数学 位运算 编程之美
主要介绍了php求数组全排列,元素所有组合的方法,涉及php针对数组与字符串的分割、遍历、数学运算等技巧,需要的朋友可以参考下
如果输入123,那么就会输出123,132,213,231,312,321,依次列推
只用了一维长度为9的数组 全排列问题可以看做简化规则的八皇后问题噢!!
本文实例讲述了Golang排列组合算法问题之全排列实现方法。分享给大家供大家参考,具体如下: 【排列组合问题】 一共N辆火车(0<N<10),每辆火车以数字1-9编号,要求以字典序排序输出火车出站的序列号。 输入:...
你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。 示例: 输入:s = "abc" 输出:["abc","acb","bac","bca","cab","cba"] 限制: 1 <= s 的长度 <= 8 来源:力扣(LeetCode) 链接:...
主要为大家详细介绍了Java递归实现字符串全排列与全组合,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
table 复写pairs方法.lua 实现数组的全排列.lua table数组的逆序.lua 将csv内容输出保存table.lua 以delimiter截取字符串输出table.lua 将全局变量替换其value.lua 判定return是否包含某匹配字串.lua 将数组元素...
无重复字符的最长子串 7 整数反转 数组 8 字符串转整型 string 9 Palindrome Number 11 盛最多水的容器 中等 数组 14 最长公共前缀 15 三数之和 19 Remove Nth Node From End of List 中等 链表 20 有效的字符串/...
7.4.1 数组无重复 7.4.2 数组有重复 7.5 在旋转排序数组中查找指定数字 8. 暴力枚举法 8.1 求集合的子集 8.2 集合的全排列 8.3 在指定树中选择进行全排列 8.4 电话上对应数字的字母组成的所有单词 9. 广度优先搜索 ...
无重复字符的最长子串 中等 4 寻找两个有序数组的中位数 困难 7 整数反转 简单 8 字符串转换整数(atoi) 中等 9 回文数 简单 11 盛最多水的容器 中等 14 最长公共前缀 简单 15 三数之和 中等 16 最接近的三数之和 ...
python 数据结构 算法 LeetCode 牛客 面试 编程之美 动态规划 字典树 快速排序 树 字符串 数组 链表 全排列 堆排序 位运算 大数相加
leetcode字符串括号level Leetcode Practice :seedling: BackTracking ...无重复字符的最长字串 Medium 020 有效的括号 Easy 146 LRU缓存机制 Medium Linked List # Problems Level Comment 002 两
无重复字符的最长子串 字符串转换整数 盛水最多得容器 括号生成 搜索旋转排序数组 全排列 跳跃游戏 合并区间 LRU缓存机制 翻转字符串里的单词 二叉树的右视图 岛屿数量 数字范围按位与 生命游戏 设计推特 水壶问题 ...
第一章 字符串 o 1.0 本章导读 o 1.1 旋转字符串 o 1.2 字符串包含 o 1.3 字符串转换成整数 o 1.4 回文判断 o 1.5 最长回文子串 o 1.6 字符串的全排列 o 1.10 本章习题 第二章 数组 o 2.0 本章导读 o 2.1 寻找最小的...
求数组子集(含重复元素) Array 152 最大子数组乘积 DP 165 版本号比较 String 165 偷东西 DP 219 重复元素判断 Array 234 回文链表判断 LinkedList 234 DFS路径 DFS 434 字符串分段数 String 459 字符串是否由子串...
3.无重复字符的最长子串 76.最小覆盖子串 双指针 11.盛最多的水 15.三数之和 16.最接近的三数之和 二分搜索法 33.搜索旋转排序数组 34.在排序数组中查找元素的第一个和最后一个位置 162.寻找峰值 位运算 137.只出现...