ARTS Week 29

Algorithm 本周的算法题为 2413. 最小偶倍数 给你一个正整数 n ,返回 2 和 n 的最小公倍数(正整数)。 示例 1: 输入:n = 5 输出:10 解释:5 和 2 的最小公倍数是 10 。 实现代码如下: const smallestEvenMultiple = function (n) { if (n >= 2 && n % 2 == 0) { return n } if (n % 2 != 0) { return n * 2 } }; 解题思路: 两个数中一个数是另一个数的倍数,则较大的数就是它们的最小公倍数。 两个数是相邻的自然数或是两个不同的质数,则它们的乘积就是最小公倍数。 通过取余(%)运算符实现即可。 Review Chechnya bans music that is too slow or too fast - Breaking News English Lesson 车臣共和国的文化部制定了关于人们可以听什么速度的音乐的规定。该部门禁止播放速度过快或过慢的歌曲,并发布了有关允许的歌曲节奏的公告。公告中写道:“从现在开始,所有的音乐、歌唱和舞蹈作品的节奏应该在80到116拍每分钟之间。”这个新标准的起点是每分钟80拍,比许多现代流行音乐要慢得多。然而,俄罗斯国歌通常以每分钟76拍的速度演奏。文化部尚未就国歌是否受到新规定的影响发表任何声明。很可能国歌将成为这一新规定的例外。 禁止播放速度过快或过慢的音乐旨在保护车臣的文化和传统。《莫斯科时报》称这是为了“根除任何西方化的迹象”。车臣领导人拉姆赞·卡德罗夫表示,这项禁令是为了使音乐“符合车臣人的心态”。他补充道:“借用他人的音乐文化是不可容忍的。”车臣文化部部长穆萨·达达耶夫表示:“我们必须将车臣人民的文化遗产传承给人民和我们子孙后代。”当地艺术家需要在6月1日之前重新创作他们的歌曲以符合新的节奏要求。车臣的人们将不能再听到电子音乐,或者碧昂丝、公鸭和泰勒的许多歌曲。 Tip git clone xxx not found 在使用git从gitlab下载项目的时候,出现以下这个报错问题: fatal: repository 'https://gitlab.xxx.com/xxx/web/project-name/' not found 因为URL是copy的,所以不会弄错,猜测应该是用户名和密码异常,所以使用以下命令进行配置: git config --global user.name "xxxx" git config --global user.password "xxxx" 发现还是失败了,就想着怎么触发用户名和密码输入那个弹窗。看了一下发现使用的URL其实是没有.git结尾的,修改了一下clone的命令为: git clone https://gitlab.xxx.com/xxx/web/project-name.git 此时,触发了用户名和密码输入弹窗,填入正确信息即可,问题解决。 ...

2024-05-18 · 1 分钟 · 117 字

ARTS Week 28

Algorithm 本周的算法题为 498. 对角线遍历 给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。 示例 1: 输入:mat = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,4,7,5,3,6,8,9] 实现代码如下: var findDiagonalOrder = function(mat) { if (mat.length === 0) return []; const m = mat.length; const n = mat[0].length; const result = []; let row = 0, col = 0, d = 1; for (let i = 0; i < m * n; i++) { result.push(mat[row][col]); row -= d; col += d; if (row >= m) { row = m - 1; col += 2; d = -d; } if (col >= n) { col = n - 1; row += 2; d = -d; } if (row < 0) { row = 0; d = -d; } if (col < 0) { col = 0; d = -d; } } return result; }; 解题思路: 首先,检查矩阵的行数,如果矩阵是空的,直接返回一个空数组。 然后,获取矩阵的行数 m 和列数 n,并初始化一个空数组 result 来存储遍历的结果。接着,初始化变量 row 和 col 分别代表当前的行和列,d 代表遍历的方向。在矩阵中,向右上方向移动,行数减小,列数增大,所以,当d=1时,为右上方向遍历,当d=-1时,为左下方向遍历。 接下来,通过一个循环来遍历整个矩阵。在每一次循环中,将当前位置的值加入到结果数组中,然后根据当前的遍历方向 d 来更新 row 和 col 的值。同时,根据不同的情况(比如超出边界),调整 row、col 和 d 的值,以确保遍历的方向是正确的。 最后,返回结果数组。 Review Rockets and planes chase the solar eclipse - Breaking News English Lesson ...

2024-05-17 · 1 分钟 · 194 字

2024-05-15 运动记录

饮食 早餐:炒河粉、豆浆 午餐:公司食堂 晚餐:豌杂面 无氧 无 有氧 总结 今天也坚持了下,爬坡走了一个半小时,没想到还是可以的,看看手机视频,时间过得还是很快的。一方面是早上吃了炒粉,然后晚上吃了豌杂面,按理说应该是吃多了。所以坚持一下下,多一点时间吧。

2024-05-15 · 1 分钟 · 9 字

2024-05-14 运动记录

饮食 早餐:鸡蛋、炒河粉 午餐:桂林米粉、卤肉、瘦肉 晚餐:山姆大叔汉堡、椒盐鸡块、薯条、零度可乐、可口可乐 无氧 无 有氧 总结 很显然,运动和不运动差之千里,虽然是2点睡觉,6点半醒来,但是整个人不算特别困,也没觉得一点精神都没有,感觉好像睡得还可以。坚持坚持再坚持,早上去吃了炒河粉和豆浆,用薄荷健康App计算,一下子就超标了,所以只能午饭、晚饭只能吃少一点了。

2024-05-14 · 1 分钟 · 9 字

ARTS Week 50

Algorithm 本周的算法题为 1493. 删掉一个元素以后全为 1 的最长子数组 给你一个二进制数组 nums ,你需要从中删掉一个元素。 请你在删掉元素的结果数组中,返回最长的且只包含 1 的非空子数组的长度。 如果不存在这样的子数组,请返回 0 。 示例 2: 输入:nums = [0,1,1,1,0,1,1,0,1] 输出:5 解释:删掉位置 4 的数字后,[0,1,1,1,1,1,0,1] 的最长全 1 子数组为 [1,1,1,1,1] 。 实现代码如下: const longestSubarray = function (nums) { // 检查数组是否全为1 function isAllOnes(arr) { return arr.every(n => n === 1); } // 检查数组是否全为0 function isAllZeros(arr) { return arr.every(n => n === 0); } // 处理数组,返回最长连续1的长度 function processArray(arr) { const str = arr.join(""); const segments = str.split('0'); let maxLength = 0; for (let segment of segments) { if (segment.length > maxLength) { maxLength = segment.length; } } return maxLength; } if (isAllOnes(nums)) { return nums.length - 1; } if (isAllZeros(nums)) { return 0; } // 找出所有满足条件的0的位置 const zeroIndices = []; for (let i = 0; i < nums.length; i++) { if (nums[i] === 0 && (nums[i - 1] === 1 || nums[i + 1] === 1)) { zeroIndices.push(i); } } if (zeroIndices.length === 0) { return processArray(nums); } let maxResult = 0; zeroIndices.forEach(index => { const modifiedArray = JSON.parse(JSON.stringify(nums)); modifiedArray[index] = 1; const currentMax = processArray(modifiedArray); if (currentMax > maxResult) { maxResult = currentMax; } }); return maxResult - 1; }; 解题思路: ...

2024-05-13 · 2 分钟 · 267 字