数组元素全排列Java
admin
2024-02-03 11:15:50
import java.util.*;/*** 数组全排序* @author Green.Gee* @date 2022/11/18 20:33* @email green.gee.lu@gmail.com*/
public class FullMutation {// 数组元素全排列public static void main(String[] args) {Scanner in = new Scanner(System.in);// 示例 1 2 3while (in.hasNextInt()) { // 注意 while 处理多个 caseint a = in.nextInt();int b = in.nextInt();int c = in.nextInt();int[] arr = new int[]{a,b,c};// 递归方法
//            mutation(arr,0,arr.length - 1);// 插入组合方法mutation(arr);}}static void swap(int [] arr,int i,int j){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}public static void mutation(int [] arr){List>  res = new LinkedList<>();res.add(0,Arrays.asList(arr[0]));for(int i = 1; i < arr.length; i++){List>  temp_res = new LinkedList<>();List next = Arrays.asList(arr[i]);for(List item : res){List p = new LinkedList<>();p.addAll(next);p.addAll(item);temp_res.add(p);List n = new LinkedList<>();n.addAll(item);n.addAll(next);temp_res.add(n);for(int j = 1; j < item.size(); j++){List m = new LinkedList<>();m.addAll(item.subList(0,j));m.addAll(next);m.addAll(item.subList(j,item.size()));temp_res.add(m);}}res = temp_res;}System.err.println(res.toString());}public static void mutation(int [] arr,int start,int end){if(start == end){System.out.println(Arrays.toString(arr));return;}for(int i = start;i <= end;i++){swap(arr,start,i);mutation(arr,start + 1,end);swap(arr,start,i);}}}

相关内容

热门资讯

山水皆有情!丽江两山一江的千年... 去过丽江、走过虎跳峡的人,大概率都听过哈巴雪山和金沙江的传说。很多人站在峡谷之下,望着奔腾不息的金沙...
活力中国调研行丨“殷”你而来 ... 9月12日,游客在殷墟博物馆“甲骨文展厅”内参观。位于河南省安阳市的殷墟博物馆新馆是首个全景式展现商...
浦江之夜赴美好相逢,第37届上... 9月12日晚,黄浦江畔灯火璀璨,第37届上海旅游节大巡游在外滩中山东一路上演。不少观众早早便来到外滩...
美丽中国丨秋韵紫鹊界 梯田入画... 这是9月11日拍摄的紫鹊界梯田(无人机照片)。 金秋九月,湖南省娄底市新化县紫鹊界梯田稻谷渐次成熟。...
中国之巅奏响《共同的节日》,千... 千吨阻尼器,“迎世赛、游上海旅游节”。9月13日,由上海市文化和旅游局指导推出上海旅游·会客│巅峰之...