Skip to content

Commit d6d1d12

Browse files
updates reverse integer in js
1 parent 0de9fd7 commit d6d1d12

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

javascript/ReverseInteger.js

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,22 @@
1-
// https://leetcode.com/problems/reverse-integer/
1+
// https://leetcode.com/problems/reverse-integer
2+
// T: O(log(n))
3+
// S: O(1)
24

3-
var reverse = function (x) {
5+
const INTEGER_MAX_VAL = 2147483647;
6+
7+
const reverse = x => {
48
let result = 0;
59
const isNegative = x <= 0;
610
let absNumber = Math.abs(x);
11+
712
while (absNumber !== 0) {
813
let remainder = absNumber % 10;
914
absNumber = Math.floor(absNumber / 10);
1015
result = result * 10 + remainder;
11-
if (result > 2147483647) {
16+
if (result > INTEGER_MAX_VAL) {
1217
return 0;
1318
}
1419
}
20+
1521
return isNegative ? -result : result;
1622
};

src/UglyNumberIII.java

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import java.util.Arrays;
2+
3+
public class UglyNumberIII {
4+
public static int nthUglyNumber(int n, int a, int b, int c) {
5+
final int[] dp = new int[n + 1];
6+
dp[0] = 1;
7+
int factorA = a, factorB = b, factorC = c;
8+
int indexA = 0, indexB = 0, indexC = 0;
9+
10+
for (int i = 1 ; i < dp.length ; i++) {
11+
final int uglyNumber = min(factorA, factorB, factorC);
12+
dp[i] = uglyNumber;
13+
if (uglyNumber == factorA) factorA = a * dp[++indexA];
14+
if (uglyNumber == factorB) factorB = b * dp[++indexB];
15+
if (uglyNumber == factorC) factorC = c * dp[++indexC];
16+
}
17+
System.out.println(Arrays.toString(dp));
18+
return dp[dp.length - 1];
19+
}
20+
21+
private static int min(int a, int b, int c) {
22+
return Math.min(a, Math.min(b, c));
23+
}
24+
25+
public static void main(String[] args) {
26+
System.out.println(nthUglyNumber(100, 2, 3, 5));
27+
}
28+
}

0 commit comments

Comments
 (0)