Circular Permutation in Binary Representation LeetCode solution in Rust
1use std::collections::*;23impl Solution {4pub fn circular_permutation(n: i32, start: i32) -> Vec<i32> {5let limit = 1 << n;6let mut que = VecDeque::new();7for i in 0..limit {8que.push_back(i ^ (i >> 1));9}10while que[0] != start {11let v = que.pop_front().unwrap();12que.push_back(v);13}14que.into_iter().collect::<Vec<i32>>()15}16}