1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
struct Solution; impl Solution { fn gray_code(n: i32) -> Vec<i32> { let mut res = vec![]; for i in 0..(1 << n) { res.push(i ^ i >> 1); } res } } #[test] fn test() { let n = 2; let res = vec![0, 1, 3, 2]; assert_eq!(Solution::gray_code(n), res); }