当前位置: 首页 > 后端技术 > Java

LeetCode-046-FullArrangement

时间:2023-04-01 14:18:48 Java

FullArrangement题目描述:给定一个不包含重复数字的数组nums,返回它所有可能的全排列。您可以按任何顺序返回答案。例子见LeetCode官网。来源:LeetCode链接:https://leetcode-cn.com/probl...版权归LeetCode所有。商业转载请联系官方授权,非商业转载请注明出处。方案一:暴力破解的方法是用一个队列temp来记录暂存的结果,每次遍历从队列中取一个结果,然后在列表中添加一个nums中的元素,其中需要判断是否是要添加的元素已经存在,如果存在,则重复,不添加;如果不存在,则作为可能的结果之一添加到队列中。直到所有列表中的元素个数为nums.length,返回所有结果。importjava.util.*;publicclassLeetCode_046{publicstaticList>permute(int[]nums){List>result=newArrayList<>();整数计数=0;Listlist=newArrayList<>();队列>temp=newLinkedList<>();临时添加(列表);while(count0){Listcur=temp.poll();for(intnum:nums){Listnext=newArrayList(Arrays.asList(newInteger[cur.size()]));Collections.copy(next,cur);如果(!next.contains(num)){next.add(num);临时添加(下一个);}}次--;}计数++;}结果.addAll(温度);返回结果;}publicstaticvoidmain(String[]args){int[]nums=newint[]{1,2};for(Listintegers:permute(nums)){for(Integerinteger:integers){System.out.print(integer+"");}System.out.println();}}}【每日留言】每天醒来,把微笑挂在裙子上,你会遇见更多那么美