Problem Statement  
The binary weight of a positive integer is the number of 1's in its binary representation. For example, the decimal number 1 has a binary weight of 1, and the decimal number 1717 (which is 11010110101 in binary) has a binary weight of 7. Given a positive integer N, return the smallest integer greater than N that has the same binary weight as N.  
Definition  
 
Notes  
  The result is guaranteed to fit in a signed 32bit integer.  
Constraints  
  N will be between 1 and 1,000,000,000, inclusive.  
Examples  
0)  
 
1)  
 
2)  
 
3)  
 
4)  
