Search This Blog

2024/04/02

Javascript Interview Question:Find GCD (Leetcode)

Problem Statement:
Given an integer array nums, return the greatest common divisor of the
smallest number and largest number in nums.The greatest common divisor of
two numbers is the largest positive integer that evenly divides both numbers.

Example 1:
Input: nums = [2,5,6,9,10]
Output: 2
Explanation:
The smallest number in nums is 2.
The largest number in nums is 10.
The greatest common divisor of 2 and 10 is 2.

Example 2:
Input: nums = [7,5,6,8,3]
Output: 1
Explanation:
The smallest number in nums is 3.
The largest number in nums is 8.
The greatest common divisor of 3 and 8 is 1.


Example 3:
Input: nums = [3,3]
Output: 3
Explanation:
The smallest number in nums is 3.
The largest number in nums is 3.
The greatest common divisor of 3 and 3 is 3.

Constraints:
2 <= nums.length <= 1000
1 <= nums[i] <= 1000


Solution:
let findGCD = function (nums) {
let sorted = nums.sort((a, b) => {
return a - b;
});
let smallest = sorted[0];
let largest = sorted[sorted.length - 1];

let gcd = function (a, b) {
if (!b) {
return a;
} else {
return gcd(b, a % b);
}
};

return gcd(smallest,largest)
};

let nums = [2, 5, 6, 9, 10];
let result = findGCD(nums);
console.log(result);
Output:
2

Soution 2:
let findGCD = function (nums) {
let smallest = Math.min(...nums);
let largest = Math.max(...nums);

console.log("smallest:",smallest)
console.log("largest:",largest)

let gcd = function (a, b) {
if (!b) {
return a;
} else {
return gcd(b, a % b);
}
};

return gcd(smallest, largest);
};
let nums = [2, 5, 6, 9, 10];
let result = findGCD(nums);
console.log(result);

Output:
2

No comments:

Post a Comment