Skip to content

Commit 3e3321a

Browse files
ehdshaoel
authored andcommitted
New Solution "Integer Replacement"
1 parent 032cbed commit 3e3321a

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

Diff for: algorithms/cpp/integerReplacement/IntegerReplacement.cpp

+15
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,22 @@ class Solution {
6363
return result;
6464
}
6565

66+
int integerReplacement_simple(int n){
67+
int ans = 0;
68+
size_t m = n;
69+
while (1 != m) {
70+
if (1 == (m & 1)) {
71+
if (m==3) --m; //special case
72+
else m = (m&0b11^0b01) ? m + 1 : m - 1;
73+
}
74+
else m >>= 1;
75+
++ans;
76+
}
77+
return ans;
78+
}
79+
6680
int integerReplacement(int n) {
6781
return integerReplacement_recursionWithCache(n);
82+
return integerReplacement_simple(n);
6883
}
6984
};

0 commit comments

Comments
 (0)