Binary Gap
找一个int中两个1之间最大的距离. 先把int变成string, 然后找每个1的gap, 然后取最大.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class Solution { public int binaryGap(int N) { if(N < 0 || N == 0) return 0; String s = Integer.toBinaryString(N); int g = 0; int[] tmp = new int[s.length()]; int t = 0; for(int i = 0; i < s.length(); i++) { if(s.charAt(i) == '1'){ tmp[t++] = i; } } for(int i = 1; i < s.length(); i++) { g = Math.max(g, tmp[i] - tmp[i-1]); } return g; } } |