1+ /**
2+ * 3718. Smallest Missing Multiple of K
3+ *
4+ * 取得能被k整除且是所有能被k整除的最小數且不在nums中的元素並回傳
5+ *
6+ * @param {number[] } nums
7+ * @param {number } k
8+ * @return {number }
9+ */
10+ var missingMultiple = function ( nums , k ) {
11+ // solution 1.Runtime 2 ms.
12+ // let divisibleByK = [];
13+ // let ans = 0;
14+ // for(let i = 1;i < nums.length+2;++i) {
15+ // divisibleByK.push(i*k);
16+ // }
17+ // for(let i = 0;i < divisibleByK.length;++i) {
18+ // if(!nums.includes(divisibleByK[i])){
19+ // ans = divisibleByK[i];
20+ // break;
21+ // }
22+ // }
23+ // return ans;
24+
25+ // solution 2.Runtime 1 ms.
26+ // let map = new Map();
27+ // let ans = 0;
28+ // for(let i = 0;i < nums.length;++i) {
29+ // map.set(nums[i],1);
30+ // }
31+ // for(let i = 1;i < nums.length+2;++i) {
32+ // if(!map.has(i * k)){
33+ // ans = i * k;
34+ // break;
35+ // }
36+ // }
37+ // return ans;
38+
39+ // solution 3.
40+ let set = new Set ( nums ) ;
41+ for ( let i = k ; ; i += k ) {
42+ if ( ! set . has ( i ) ) {
43+ return i ;
44+ }
45+ }
46+ } ;
47+ // let nums = [1,4,7,10,15], k = 5;
48+ // 5
49+ let nums = [ 8 , 2 , 3 , 4 , 6 ] , k = 2 ;
50+ // 10
51+ // let nums = [99],k = 99;
52+ // 198
53+ // let nums = [2,4,6,8,10],k = 2;
54+ // 12
55+ console . log ( missingMultiple ( nums , k ) ) ;
0 commit comments