首页 > 代码库 > [LeetCode]89 Gray Code
[LeetCode]89 Gray Code
https://oj.leetcode.com/problems/gray-code/
public class Solution { public List<Integer> grayCode(int n) { // 规律: // n = 0: // 0 // // n = 1: // 0 // 1 // // n = 2: // 00 // 01 // 11 // 10 // // n = 3 // 000 // 001 // 011 // 010 // 110 // 111 // 101 // 100 // // 设 n-1 结果集 为 s // 正序 每一个 i,头部加入 0,放入新结果集 // 倒序 每一个 i,头部加入 1,放入新结果集 if (n < 0) return Collections.emptyList(); if (n == 0) return Collections.singletonList(0); List<String> str = code(n); List<Integer> toReturn = new ArrayList<>(); for (String s : str) { toReturn.add(Integer.parseInt(s, 2)); } return toReturn; } private List<String> code(int n) { if (n == 1) { List<String> toReturn = new ArrayList<>(); toReturn.add("0"); toReturn.add("1"); return toReturn; } List<String> last = code(n - 1); List<String> toReturn = new ArrayList<>(); // for each e in last, append 0, to head. and into new result for (String s : last) { toReturn.add("0" + s); } // for each e in last (reverse), and append (1) in it. for (int i = last.size() - 1 ; i >= 0 ; i --) { toReturn.add("1" + last.get(i)); } return toReturn; } }
[LeetCode]89 Gray Code
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。