-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathindex.js
42 lines (40 loc) · 1017 Bytes
/
index.js
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
/**
* @param {number} dividend
* @param {number} divisor
* @return {number}
*/
var divide = function(dividend, divisor) {
const is_negative = (dividend > 0 && divisor < 0) || (dividend < 0 && divisor > 0);
const min_value = - Math.pow(2, 31);
const max_value = - min_value - 1;
let result = 0;
dividend = Math.abs(dividend);
divisor = Math.abs(divisor);
if (divisor === 1) {
result = dividend;
} else {
while (dividend >= divisor) {
result += 1;
dividend -= divisor;
}
}
if (is_negative) {
result = -result;
if (result < min_value) {
return min_value;
}
return result;
}
if (result > max_value) {
return max_value;
}
return result;
};
console.log(divide(7, -3));
console.log(divide(-2147483648, -1));
module.exports = {
id:'29',
title:'Divide Two Integers',
url:'https://leetcode.com/problems/divide-two-integers/',
difficulty:'medium',
};