Java的排列组合

m0_48036920 2020-11-18 01:49:53
例:1, 2, 3。a, b。
排列组合后,1 a,1 b,2 a,2 b,3 a,3 b。
怎么设置,1只和a组合。
结果为:1 a,2 a,2 b,3 a,3 b。
有明白的大神麻烦提供个思路或者能把代码贴上来就太好了。万分感谢。
...全文
2433 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepSayingNo 2020-11-18
  • 打赏
  • 举报
回复
其实你还可以写更优的代码,直接把1拿出来,其它的元素放到两个set,然后笛卡尔积
西溪水岸 2020-11-18
  • 打赏
  • 举报
回复
class Solution {
    //参数strs1数组1,strs2数组2,a数组1中指定位置,b与数组1中指定值组合的值在数组2中的下标
    public List<String> longestCommonPrefix(String[] strs1, String[] strs2, int a, int b) {
        List<String> result = new LinkedList<>();
        if (strs1.length==0 || strs2.length==0){//判断有空数组时直接返回空集合
            return  result;
        }
        for (int i=0;i<strs1.length;i++){//循环数组1
            if (i==a){//判断数组1中指定值仅与数组2中指定值组合
                result.add(strs1[i]+strs2[b]);
            }else{//数组1中其余值与数组2中的值进行组合
                for (int j=0;j<strs2.length;j++){
                    result.add(strs1[i]+strs2[j]);
                }
            }
        }
        return result;
    }

    public static void main(String[] args) {
        Solution solution=new Solution();
        String[] aaa=new String[]{"1","2","3","4"};//数组1
        String[] bbb=new String[]{"a","b","c","d"};//数组2
        List str = solution.longestCommonPrefix(aaa,bbb,0,0);
        System.out.println(str);
    }
}
m0_48036920 2020-11-18
  • 打赏
  • 举报
回复
引用 1 楼 西溪水岸 的回复:
类似于这样? public List<String> longestCommonPrefix(String[] strs1, String[] strs2, int a, int b) { List<String> result = new LinkedList<>(); if (strs1.length==0 || strs2.length==0){ return result; } for (int i=0;i<strs1.length;i++){ if (i==a){ result.add(strs1[i]+strs2[b]); }else{ for (int j=0;j<strs2.length;j++){ result.add(strs1[i]+strs2[j]); } } } return result; }
您好,请问有完全的代码吗?可以给我发一下吗?
西溪水岸 2020-11-18
  • 打赏
  • 举报
回复
类似于这样? public List<String> longestCommonPrefix(String[] strs1, String[] strs2, int a, int b) { List<String> result = new LinkedList<>(); if (strs1.length==0 || strs2.length==0){ return result; } for (int i=0;i<strs1.length;i++){ if (i==a){ result.add(strs1[i]+strs2[b]); }else{ for (int j=0;j<strs2.length;j++){ result.add(strs1[i]+strs2[j]); } } } return result; }

50,535

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧