Skip to content

Commit 1f3856f

Browse files
committed
❌ [biweekly-contest-108]
1 parent 5cc2f26 commit 1f3856f

File tree

4 files changed

+145
-0
lines changed

4 files changed

+145
-0
lines changed

biweekly_contest/108/1.js

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var alternatingSubarray = function (nums) {
6+
let l = 0, max = 0
7+
8+
while (l < nums.length) {
9+
let tmpMax = 0, idx = 0, tmp = []
10+
for (let i = l; i < nums.length; i++) {
11+
let t = nums[l] + ((idx % 2 === 0) ? 0 : 1)
12+
console.log(`~> nums[i]: ${nums[i]}, t: ${t}`)
13+
if (nums[i] === t) {
14+
tmp.push(nums[i])
15+
console.log(`nums[i]: ${nums[i]}, t: ${t}`)
16+
tmpMax++;
17+
} else {
18+
break;
19+
}
20+
idx++;
21+
}
22+
23+
console.log("tmp")
24+
console.log(tmp)
25+
max = Math.max(tmpMax, max);
26+
l++
27+
}
28+
29+
return (1 === max) ? -1 : max;
30+
};
31+
32+
let x =
33+
alternatingSubarray([64, 65, 64, 65, 64, 65, 66, 65, 66, 65]) // 6
34+
// alternatingSubarray([21, 9, 5]) // -1
35+
// alternatingSubarray([2, 3, 4, 5]) // 2
36+
// alternatingSubarray([2, 3, 4, 3, 4]) // 4
37+
38+
console.log("REs")
39+
console.log(x)

biweekly_contest/108/2.js

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// gpt
2+
var relocateMarbles = (nums, moveFrom, moveTo) => {
3+
let pos = new Set(nums);
4+
5+
for (let i = 0; i < moveFrom.length; i++) {
6+
pos.delete(moveFrom[i]);
7+
pos.add(moveTo[i]);
8+
}
9+
10+
return Array.from(pos).sort((a, b) => a - b);
11+
}
12+
/**
13+
* @param {number[]} nums
14+
* @param {number[]} moveFrom
15+
* @param {number[]} moveTo
16+
* @return {number[]}
17+
*/
18+
var relocateMarbles2 = function (nums, moveFrom, moveTo) {
19+
let map = new Map()
20+
21+
for (let i = 0; i < moveFrom.length; i++) {
22+
map.set(moveFrom[i], moveTo[i])
23+
}
24+
25+
console.log(map)
26+
27+
for (let i = 0; i < nums.length; i++) {
28+
while (map.has(nums[i])) {
29+
nums[i] = map.get(nums[i]);
30+
}
31+
}
32+
33+
return nums
34+
};
35+
36+
let x =
37+
// relocateMarbles(
38+
// [1, 1, 3, 3],
39+
// [1, 3],
40+
// [2, 2]
41+
// ) // [2]
42+
relocateMarbles(
43+
[1, 6, 7, 8],
44+
[1, 7, 2],
45+
[2, 9, 5]) //[5,6,8,9]
46+
47+
console.log("REs")
48+
console.log(x)

biweekly_contest/108/3.js

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/**
2+
* @param {string} s
3+
* @return {number}
4+
*/
5+
var minimumBeautifulSubstrings = function (s) {
6+
let count = 0, tmpS = ""
7+
s = s.split("")
8+
if (s[0] == "0") return -1;
9+
10+
while (s.length > 0) {
11+
let curr = s.shift()
12+
tmpS += curr;
13+
console.log(`curr: ${curr}, tmpS: ${tmpS}`)
14+
console.log(`tmpS: ${tmpS}, b10: ${parseInt(tmpS, 2)}`)
15+
// console.log(Math.log(parseInt(tmpS, 2)) / Math.log(5))
16+
if ((curr === "1" && curr === s[0]) && isPowerOf5(parseInt(tmpS, 2))) {
17+
console.log(`--- pow5 -> tmpS: ${tmpS}`)
18+
count++;
19+
tmpS = ""
20+
// } else if (curr === "0" && curr === s[0]) {
21+
}
22+
}
23+
24+
console.log(`> tmpS: ${tmpS}, b10: ${parseInt(tmpS, 2)}, pcount: ${count}`)
25+
// return count
26+
if (tmpS !== "" && isPowerOf5(parseInt(tmpS, 2))) count++;
27+
return (0 !== count) ? count : -1
28+
};
29+
30+
function isPowerOf5(number) {
31+
const logBase5 = Math.log(number) / Math.log(5);
32+
return Math.abs(logBase5 - Math.round(logBase5)) < Number.EPSILON;
33+
}
34+
35+
let x =
36+
// minimumBeautifulSubstrings("100101") // -1
37+
// minimumBeautifulSubstrings("1011") // 2
38+
// minimumBeautifulSubstrings("111") // 3
39+
// minimumBeautifulSubstrings("0") // -1
40+
// minimumBeautifulSubstrings("100111000110111") // 4
41+
// minimumBeautifulSubstrings("101101101111001") // 5
42+
// minimumBeautifulSubstrings("100111000111101") // 4
43+
minimumBeautifulSubstrings("101101110011101") // 5
44+
45+
console.log("REs")
46+
console.log(x)
47+
48+
// NOTE: FAILED

biweekly_contest/108/4.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/**
2+
* @param {number} m
3+
* @param {number} n
4+
* @param {number[][]} coordinates
5+
* @return {number[]}
6+
*/
7+
var countBlackBlocks = function (m, n, coordinates) {
8+
9+
};
10+
// NOTE: GAVE UP

0 commit comments

Comments
 (0)