如题,谷歌两轮背靠背电面。两轮都是废话不多说直奔coding,虽然第一轮的中国大哥还是花了一点点时间了解了一下我的背景、毕业时间、research方向。说好的research面呢?

中国大哥出的题:

Given a set of integers, print out all the subsets
For example, {1, 2, 3}
output: {}, {1,2}, …., {1,2,3}

我的解法:

 1 public ArrayList<ArrayList<Integer>> findsubsets (int[] S) {
 2     Arrays.sort(S);
 3     ArrayList<ArrayList<Integer>> res = new ArrayList<ArrayList<Integer>>();
 4     ArrayList<Integer> set = ArrayList<Integer>();
 5     for (int i=0; i<S.length(); i++) {
 6         helper(set, res, S, i, 0);
 7         }
 8         return res;
 9 }
10 
11 public void helper(ArrayList<Integer> set, ArrayList<ArrayList<Integer>> res, int[] S, int i, int starter) {
12     if(res.size() == i) {
13         res.add(new ArrayList<Integer>(set));
14         return;
15         }
16         for (int j=starter; j<S.length(); j++) {
17         set.add(S[j]);
18         helper(set, res, S, i, j+1);
19         set.remove(S[j]);
20         }
21 }
22         
View Code

相关文章:

  • 2021-04-28
  • 2022-12-23
  • 2021-10-07
  • 2021-07-22
  • 2021-11-17
  • 2021-08-30
  • 2021-10-28
猜你喜欢
  • 2021-07-16
  • 2021-08-19
  • 2021-07-27
  • 2021-12-09
  • 2021-12-15
  • 2021-12-31
  • 2021-12-18
相关资源
相似解决方案