File tree 1 file changed +31
-0
lines changed
src/main/java/com/fishercoder/solutions
1 file changed +31
-0
lines changed Original file line number Diff line number Diff line change @@ -46,4 +46,35 @@ public int missingNumber(int[] arr) {
46
46
return (max + min ) * (arr .length + 1 ) / 2 - sum ;
47
47
}
48
48
}
49
+
50
+ public static class Solution3 {
51
+ public int missingNumber (int [] arr ) {
52
+ if (arr [1 ] < arr [0 ]) {
53
+ reverse (arr );
54
+ }
55
+ int diff = -1 ;
56
+ for (int i = 0 ; i < arr .length - 1 ; i ++) {
57
+ if (i == 0 ) {
58
+ diff = arr [i + 1 ] - arr [i ];
59
+ } else if (arr [i + 1 ] - arr [i ] > diff ) {
60
+ return arr [i ] + diff ;
61
+ } else if (arr [i + 1 ] - arr [i ] < diff ) {
62
+ return arr [i ] - (arr [i + 1 ] - arr [i ]);
63
+ }
64
+ }
65
+ return arr [arr .length - 1 ];
66
+ }
67
+
68
+ private void reverse (int [] arr ) {
69
+ int i = 0 ;
70
+ int j = arr .length - 1 ;
71
+ while (i < j ) {
72
+ int tmp = arr [i ];
73
+ arr [i ] = arr [j ];
74
+ arr [j ] = tmp ;
75
+ i ++;
76
+ j --;
77
+ }
78
+ }
79
+ }
49
80
}
You can’t perform that action at this time.
0 commit comments