-
Notifications
You must be signed in to change notification settings - Fork 19
/
ReachANumber.java
52 lines (48 loc) · 1.43 KB
/
ReachANumber.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
class Solution {
public int reachNumber(int target) {
int index = 0;
int num = 0;
if (target < 0) {
while (num > target) {
num = num - index;
index++;
}
} else {
while (num < target) {
num = num + index;
index++;
}
}
// int tempIndex = index - 1;
// System.out.println("index " + tempIndex + " -> " + ((tempIndex * (tempIndex + 1)) / 2));
// if (((tempIndex * (tempIndex + 1)) / 2) == target) {
// return tempIndex;
// }
if (target < 0) {
if (target % 2 == 0) {
while (num % 2 != 0) {
num -= index;
index++;
}
} else {
while (num % 2 == 0) {
num -= index;
index++;
}
}
} else {
if (target % 2 == 0) {
while (num % 2 != 0) {
num += index;
index++;
}
} else {
while (num % 2 == 0) {
num += index;
index++;
}
}
}
return --index;
}
}