java吧 关注:1,238,416贴子:12,709,149

回复:今天面试,考官给出了这么一道题。求大神给讲解一下

只看楼主收藏回复

不会做,感觉做了一年java都没用过递归


来自Android客户端18楼2016-10-15 00:31
回复
    笛卡尔积


    IP属地:北京来自iPhone客户端19楼2016-10-15 00:35
    回复
      private void print(List<char[]> list) {
      recPrint(list, 0);
      }
      private void recPrint(List<char[]> list , int time) {
      if(time == list.length)
      {
      println();
      return;
      }else {
      char[] chars = list.get(time);
      for(int i=0; i<chars.length; i++){
      print(chars[i]);
      recPrint(list, time + 1);
      }
      }
      }


      来自Android客户端21楼2016-10-15 01:41
      收起回复
        看了下,递归应该可以做这个,但是我递归不熟练,土办法,它内部有几个数组,我就给它个第一层循环大小,比如6个,我就遍历999999次,然后第二层,遍历集合,用字符串装,遍历出来的数,比如,外层值第一次1111111,每个子集合取list. get (i ){再取1,这里需要截串,并需判断脚标越界},如果一个不符合,就跳出第二循环。第一次外循环取出一个值假如abcdef, 第二次就是abcdeg..,.,


        来自Android客户端22楼2016-10-15 01:42
        回复
          这是初级工程师面试题吧


          IP属地:广西来自Android客户端23楼2016-10-15 12:54
          收起回复


            24楼2016-10-15 13:48
            回复