Moving Stones Until Consecutive
分类讨论就可以了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class Solution { public int[] numMovesStones(int a, int b, int c) { int[] ary = new int[3]; ary[0] = a; ary[1] = b; ary[2] = c; Arrays.sort(ary); int min = 0; if(ary[2] - ary[0] == 2) { // [1,2,3] min = 0; } else if((ary[1] - ary[0] == 2 || ary[2] - ary[1] == 2)) {// [1,3,10] , return 1, move 10 to 2,etc [1,8,10], move 1 to 9 min = 1; } else if((ary[1] - ary[0] == 1 ^ ary[2] - ary[1] == 1)) {// [1,2,5], return 1, move 5 to 3. etc [1,3,4], move 1 to 2 min = 1; } else { // min = 2; } int max = (ary[1] - ary[0] - 1) + (ary[2] - ary[1] - 1); return new int[]{min,max}; } } |