Skip to main content

2 posts tagged with "array"

View All Tags

· 2 min read
Abraham Fig

Given an integer array nums, return the sum of divisors of the integers in that array that have exactly four divisors. If there is no such integer in the array, return 0.

Example

Example 1:

Input: nums = [21,4,7] Output: 32

Explanation: 21 has 4 divisors: 1, 3, 7, 21 4 has 3 divisors: 1, 2, 4 7 has 2 divisors: 1, 7 The answer is the sum of divisors of 21 only.

Example 2:

Input: nums = [21,21] Output: 64

Example 3:

Input: nums = [1,2,3,4,5] Output: 0

Constraints:

1 <= nums.length <= 104 1 <= nums[i] <= 105

/**
* @param {number[]} nums
* @return {number}
*/

const findDivisors = (num) => {
const divisors = [1, num];
const upperLimit = Math.sqrt(num);
if (Number.isInteger(upperLimit)) {
return [];
// divisors.push(upperLimit)
}
for (let i = 2; i < upperLimit; i++) {
if (Number.isInteger(num / i)) {
divisors.push(i);
divisors.push(num / i);
}
if (divisors.length > 4) {
return [];
}
}
if (divisors.length === 4) {
return divisors;
} else {
return [];
}
};
var sumFourDivisors = function (nums) {
const res = [];
const length = nums.length;
for (let i = 0; i < length; i++) {
res.push(findDivisors(nums[i]).reduce((prev, cur) => prev + cur, 0));
}
return res.reduce((prev, cur) => prev + cur, 0);
};

· One min read
Abraham Fig

Given a 2D integer array matrix, return the transpose of matrix.

Given the array of integers nums, you will choose two different indices i and j of that array. Return the maximum value of (nums[i]-1)*(nums[j]-1).

Example

Example 1:

Input: nums = [3,4,5,2] Output: 12 Explanation: If you choose the indices i=1 and j=2 (indexed from 0), you will get the maximum value, that is, (nums[1]-1)(nums[2]-1) = (4-1)(5-1) = 3*4 = 12. Example 2:

Input: nums = [1,5,4,5] Output: 16 Explanation: Choosing the indices i=1 and j=3 (indexed from 0), you will get the maximum value of (5-1)*(5-1) = 16. Example 3:

Input: nums = [3,7] Output: 12

/**
* @param {number[]} nums
* @return {number}
*/
var maxProduct = function (nums) {
nums.sort((a, b) => a - b);
const len = nums.length;
return (nums[len - 1] - 1) * (nums[len - 2] - 1);
};