ARTS Week 35

Algorithm 本周的算法题为 3114. 替换字符可以得到的最晚时间 给你一个字符串 s,表示一个 12 小时制的时间格式,其中一些数字(可能没有)被 "?" 替换。 12 小时制时间格式为 "HH:MM" ,其中 HH 的取值范围为 00 至 11,MM 的取值范围为 00 至 59。最早的时间为 00:00,最晚的时间为 11:59。 你需要将 s 中的 所有 "?" 字符替换为数字,使得结果字符串代表的时间是一个 有效 的 12 小时制时间,并且是可能的 最晚 时间。 返回结果字符串。 示例 1: 输入: s = "1?:?4" 输出: "11:54" 解释: 通过替换 "?" 字符,可以得到的最晚12小时制时间是 "11:54"。 实现代码如下: const findLatestTime = function (timeString) { let result = ""; let replacementDigits = ["1", "9", "0", "5", "9"]; for (let i = 0; i < timeString....

2024-07-06 · 1 分钟 · 177 字

ARTS Week 34

Algorithm 本周的算法题为 2455. 可被三整除的偶数的平均值 给你一个由正整数组成的整数数组 nums ,返回其中可被 3 整除的所有偶数的平均值。 注意:n 个元素的平均值等于 n 个元素 求和 再除以 n ,结果 向下取整 到最接近的整数。 示例 1: 输入:nums = [1,3,6,10,12,15] 输出:9 解释:6 和 12 是可以被 3 整除的偶数。(6 + 12) / 2 = 9 。 实现代码如下: const averageValue = function (nums) { let total = 0; let count = 0; for (let i = 0; i < nums.length; i++) { if (nums[i] % 6 === 0) { total += nums[i]; count++; } } return count > 0 ?...

2024-06-21 · 1 分钟 · 136 字

ARTS Week 33

Algorithm 本周的算法题为 3151. 特殊数组 I 如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个 特殊数组 。 Aging 有一个整数数组 nums。如果 nums 是一个 特殊数组 ,返回 true,否则返回 false。 示例 1 输入:nums = [2,1,4] 输出:true 解释: 只有两对相邻元素: (2,1) 和 (1,4),它们都包含了奇偶性不同的数字,因此答案为 true。 实现代码如下: const isArraySpecial = function (nums) { for (let i = 0; i < nums.length; i++) { if (i !== nums.length - 1 && nums[i] % 2 === nums[i + 1] % 2) { return false } } return true }; 解题思路:...

2024-06-20 · 1 分钟 · 159 字

ARTS Week 32

Algorithm 本周的算法题为 1512. 好数对的数目 给你一个整数数组 nums 。 如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。 返回好数对的数目。 示例 1: 输入:nums = [1,2,3,1,1,3] 输出:4 解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始 实现代码如下: const numIdenticalPairs = function (nums) { let count = 0 for (let i = 0; i < nums.length; i++) { for (let j = 0; j < nums.length; j++) { if (nums[i] == nums[j] && i < j) { count += 1 } } } return count }; 解题思路:...

2024-06-15 · 1 分钟 · 141 字

ARTS Week 31

Algorithm 本周的算法题为 1556. 千位分隔数 给你一个整数 n,请你每隔三位添加点(即 “.” 符号)作为千位分隔符,并将结果以字符串格式返回。 示例 1: 输入:n = 123456789 输出:"123.456.789" 实现代码如下: const thousandSeparator = function (n) { const str = String(n) let result = '' for (let i = str.length - 1; i >= 0; i--) { let s = str[i]; if ((str.length - i) % 3 == 0 && i !== str.length - 1 && i !== 0) { s = '.' + s } result = s + result } return result }; 解题思路:...

2024-05-20 · 1 分钟 · 153 字