Skip to content

Commit 05ca62c

Browse files
committed
add 2 problems
1 parent 23ed79d commit 05ca62c

3 files changed

Lines changed: 87 additions & 0 deletions

File tree

javascript/LeetCode/Array/3162.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/**
2+
* 3162. Find the Number of Good Pairs I
3+
*
4+
* good if nums1[i] is divisible by nums2[j] * k (0 <= i <= n - 1, 0 <= j <= m - 1).
5+
* @param {number[]} nums1
6+
* @param {number[]} nums2
7+
* @param {number} k
8+
* @return {number}
9+
*/
10+
var numberOfPairs = function(nums1, nums2, k) {
11+
// solution 1.
12+
// let count = 0;
13+
// for(let i = 0;i < nums1.length;i++) {
14+
// for(let j = 0;j < nums2.length;j++) {
15+
// if(nums1[i] % (nums2[j] * k) == 0){
16+
// count++;
17+
// }
18+
// }
19+
// }
20+
// return count;
21+
22+
// solution 2.
23+
let count = 0;
24+
let map = new Map();
25+
for(let i of nums2) {
26+
map.set(i,(map.get(i) || 0 ) + 1);
27+
}
28+
for(let i of nums1) {
29+
// kwy mean j.
30+
for(const [key,value] of map) {
31+
if(i % (key * k)=== 0){
32+
count+= value;
33+
}
34+
}
35+
}
36+
return count;
37+
};
38+
let nums1 = [1,3,4], nums2 = [1,3,4], k = 1;
39+
// 5
40+
console.log(numberOfPairs(nums1,nums2,k))

javascript/LeetCode/Array/3477.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/**
2+
* 3477. Fruits Into Baskets II
3+
*
4+
* 參數為兩個數值陣列,fruits,baskets。
5+
* fruits表示每種水果的數量;baskets表示籃子最多可裝幾個
6+
*
7+
* 從左到右須遵守:
8+
* 每種水果要放在>=它的位置上
9+
* 每個籃子最多只能裝一種水果
10+
* 若水果無法裝進任何籃子,unplaced
11+
*
12+
* 回傳有幾個unplaced
13+
* @param {number[]} fruits
14+
* @param {number[]} baskets
15+
* @return {number}
16+
*/
17+
var numOfUnplacedFruits = function(fruits, baskets) {
18+
// 要找出有幾樣水果無法放進籃子內
19+
// 能放進去的規則:籃子的容量必須要 >= 水果
20+
let unplaced = 0;
21+
for(let i = 0;i < fruits.length;i++) {
22+
let placed = false;
23+
for(let j = 0;j < baskets.length;j++) {
24+
if(fruits[i] <= baskets[j]){
25+
baskets[j]= -1; // 標記籃子有使用
26+
placed = true;
27+
break;
28+
}
29+
}
30+
if(!placed){
31+
unplaced++;
32+
}
33+
}
34+
return unplaced;
35+
};
36+
// let fruits = [4,2,5], baskets = [3,5,4];
37+
/**
38+
* 1
39+
* fruits[0] = 4 is placed in baskets[1] = 5.
40+
* fruits[1] = 2 is placed in baskets[0] = 3.
41+
* fruits[2] = 5 cannot be placed in baskets[2] = 4.
42+
* Since one fruit type remains unplaced, we return 1.
43+
*/
44+
let fruits = [1,4], baskets = [8,1];
45+
// 1
46+
console.log(numOfUnplacedFruits(fruits,baskets));

javascript/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1028,3 +1028,4 @@ var closetPair = function(arr1,arr2,x) {
10281028
// [1,30];
10291029
// console.log(closetPair(arr1,arr2,x));
10301030

1031+

0 commit comments

Comments
 (0)