public int biggerRemove(int num, int digit) {
boolean isNeg = false;
if(num<0) {
isNeg = true;
num*=-1;
}
String numString = String.valueOf(num);
char digitChar = (char)(digit + '0');
int n = numString.length();
int lastPos = -1;
for(int i=0; i<n; i++) {
char c1 = numString.charAt(i);
if(c1!=digitChar) continue;
lastPos = i;
if(i+1>=n) break;
char c2 = numString.charAt(i+1);
if(!isNeg && c1<c2) {
return Integer.valueOf(numString.substring(0,i)+numString.substring(i+1,n));
}
if(isNeg && c1>c2) {
return -1*Integer.valueOf(numString.substring(0,i)+numString.substring(i+1,n));
}
}
int ans = lastPos==n-1? Integer.valueOf(numString.substring(0,lastPos)) : Integer.valueOf(numString.substring(0,lastPos)+numString.substring(lastPos+1,n));
return isNeg? -1*ans : ans;
}