You are viewing a single comment's thread. Return to all comments →
Try this one in java. Solution with Time complexity O(log2n)
static long strangeCounter(long t) { long p1 = 0; long p2 = 3; long p3 = 3; while(p1<=t){ if(t<=p2 && t>p1){ break; } else{ p1 =p2; p3 = p3*2; p2 = p2+p3; } } long tmp = p2-p1; long ans = 0; if(p1+1==t){ ans = tmp; } else if(p2==t){ ans = 1; } else{ ans = p2-t+1; }
return(ans); }
Strange Counter
You are viewing a single comment's thread. Return to all comments →
Try this one in java. Solution with Time complexity O(log2n)
static long strangeCounter(long t) { long p1 = 0; long p2 = 3; long p3 = 3; while(p1<=t){ if(t<=p2 && t>p1){ break; } else{ p1 =p2; p3 = p3*2; p2 = p2+p3; } } long tmp = p2-p1; long ans = 0; if(p1+1==t){ ans = tmp; } else if(p2==t){ ans = 1; } else{ ans = p2-t+1; }