美文网首页algorithm
集合的笛卡尔积

集合的笛卡尔积

作者: satyrs_sh | 来源:发表于2017-10-30 20:03 被阅读0次
public static String cartesianProduct(final String[][] inputs) {
        if (inputs == null) {
            return null;
        }
        
        final StringBuilder sb = new StringBuilder();
        
        product("", 0, inputs, sb);
        
        return sb.toString();
    }
public void product(String prefix,int index, String[][] input,StringBuilder sb){
        for (int i = 0; i < input[index].length; i++) {
            if (index >= input.length - 1) {
                sb.append(prefix + input[index][i]);
            } else {
                product(prefix + input[index][i], index + 1, input, sb);
            }
            if (i < input[index].length - 1) {
                sb.append(", ");
            }
        }
    }

两个变量关键prefix和index,作为递归方法的参数时进行变化prefix + input[index][i]index+1

从数列角度看,sb(j) = sb(j-1) + charAt(i) ,charAt(i)需要一个for循环即for (int i = 0; i < input[index].length; i++)。sb(j-1)为prefix,下一步需要prefix + input[index][i];其中j-1index,进入下一步需要index+1

实现递归较容易的方式是先得到数列的通项公式。

相关文章

  • 连接查询

    笛卡尔积 有两个集合A和B,笛卡尔积表示A集合中的元素和B集合中的元素任意相互关联产生的所有可能的结果 Sql中笛...

  • 笛卡尔积

    1.什么笛卡尔积 百科:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又...

  • 集合的笛卡尔积

    两个变量关键prefix和index,作为递归方法的参数时进行变化prefix + input[index][i]...

  • 三、MySQL多表查询和子查询

    1、隐式连接 1、笛卡尔乘积笛卡尔(Descartes)乘积又叫直积。假设集合A={a,b},集合B={0,1,2...

  • 笛卡尔积算法(PHP实现)

    第一、定义 笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尔积(Cartesian product),又称直积,表示...

  • oracle多表查询之经典面试题

    一、笛卡尔积 概念 笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直...

  • 笛卡尔积

    笛卡尔乘积:笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积表示为...

  • 关系数据库

    关系数据结构及形式化定义 关系 域具有相同类型的值得集合 笛卡尔积域上的一种集合运算 关系多个域的笛卡尔积的子集叫...

  • 多集合笛卡尔积

    Python Out Golang Out PHP

  • Oracle入门笔记【3】多表查询与分组统计查询

    1,先实现多表查询: (可以发现两个集合发生了乘积,这叫笛卡尔积问题。) 消除笛卡尔积: (这只是消除了显示的笛卡...

网友评论

    本文标题:集合的笛卡尔积

    本文链接:https://www.haomeiwen.com/subject/jyympxtx.html