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 ? Math.floor(total / count) : 0; }; 解题思路: 因为可被3整除的判断条件为nums[i] % 3 === 0,偶数的判断条件为nums[i] % 2 === 0,所以可以合起来为nums[i] % 6 === 0,然后,再使用total来记录求和值,count来记录次数,相除即可得到想要的平均值。 Review Australia to allow foreign citizens into its army - Breaking News English Lesson 澳大利亚很快将允许非澳大利亚人参军。来自英国、加拿大和新西兰等国家的人可以申请加入澳大利亚国防军(ADF)。澳大利亚在招人参军方面遇到了问题。政府希望向其他国家的人开放军队以解决征兵问题。ADF目前缺少约4400名工人。从7月起,在澳大利亚永久居住的新西兰人可以申请加入。明年,来自英国、美国和加拿大的学生将有机会。澳大利亚国防部长理查德·马尔斯(Richard Marles)表示,未来可能会有更多国家的人加入。 马勒斯表示,出于安全考虑,法国正在改变征兵政策。他说:“澳大利亚政府选择发展澳大利亚国防军,因为这对于应对未来十年乃至更长时间内的国家安全挑战至关重要。”国防部发言人说:“为了发展国防军,我们采取了大胆的行动。从更广泛的人群中招募人才将有助于确保(ADF)反映澳大利亚的全面多样性,并能够吸引(所有)澳大利亚社会的人才。”反对党外交部长西蒙·伯明翰不同意这项政策。他说,这显示了政府的失败。他说:“我们应该看到更多的澳大利亚人有信心报名参加。” Tip Math.floor() 、Math.ceil() 和 Math.round() ...

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 }; 解题思路: 一开始想到的方案是: 如果nums[0] 为偶数时,只要遍历偶数索引,其值如果出现奇数,则返回false 如果nums[0] 为奇数时,只要遍历偶数索引,其值如果出现偶数,则返回false 否则,返回true 但是,出现相邻为奇数或偶数时,是不满足条件的,因为两个条件分开判断的,所以,还是把问题想复杂化了,其实处理起来很简单,只需要判断相邻的两个数,只要出现一次奇偶性相同,则为false,否则为true。 但这里,也引申出了一个问题,检查数组边界和和不检查数组边界,哪个效率更高一点? // 检查数组边界 if (i !== nums.length - 1 && nums[i] % 2 === nums[i + 1] % 2) { return false } // 不检查数组边界 if (nums[i] % 2 === nums[i + 1] % 2) { return false } 一般来说,前者因为有一个比较的操作,所以,会影响到实际代码执行效率,但是,避免了潜在的数组越界错误;后者,没有这个比较操作,但是会有潜在数据越界错误。从健壮性和避免潜在错误的角度考虑,第一个方式是更推荐的写法。 Review Panama evacuates islanders due to rising sea levels - Breaking News English Lesson 上升的海平面导致巴拿马撤离了其中一个岛屿的居民。位于巴拿马加勒比海岸的小岛加尔迪·苏格杜布的居民正在被重新安置到内陆。然而,一名巴拿马政府官员表示,一些人拒绝撤离他们的祖居。他们将一直留到最后一刻。巴拿马政府表示,加尔迪·苏格杜布是即将发生的事情的一个迹象,因为更多的低洼岛屿正面临被海水吞没的威胁。巴拿马环境部门最近的一项研究估计,该国将失去2.01%的沿海领土。该研究还指出,将有大约38,000人需要搬迁,成本约为12亿美元。 加尔迪·苏格杜布一直是世代居住的古纳族人的家园。这个拥挤的岛屿只有366米长和137米宽,却曾经是将近300个家庭的家园。他们依靠捕鱼和旅游业谋生。24岁的岛民纳丁·莫拉莱斯说:“我们有点难过……但海水一点一点地淹没了这个岛屿。”她补充道:“最近,我发现气候变化产生了重大影响……潮汐的水位比以前更高,而且酷热难当。”莫拉莱斯女士表示,她希望她的社区在新的地点能够繁荣。她的新家将位于距离船只前往加尔迪·苏格杜布的港口两公里处,这是一项价值1200万美元的政府开发项目。 Tip git 切换分支 ...

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 }; 解题思路: 题目相对简单,使用for遍历两次,加上条件判断,累计出现好书对次数即可。 Review UK leader wants national service for 18-year-olds - Breaking News English Lesson 英国首相里希·苏纳克计划为18岁年轻人引入国民服役制度,如果他所在的党派在7月4日的英国大选中获胜,他将推行强制国民服役。根据他的计划,年轻人满18岁时将有两个选择:一是花一年时间在陆军、海军或空军服役,政府预计约有3万人会选择这一选项;二是每月一个周末从事志愿工作,比如为英国的国民卫生服务体系、急救服务、消防服务或地方社区提供服务。苏纳克表示,这将帮助年轻人获得宝贵技能,并有助于“建设更强大的国家文化”。 然而,苏纳克的计划遭到了许多人的批评。各种专家表示,该计划成本过高,且英国没有足够的人员来培训3万名军队志愿者。许多国防专家认为这一想法不切实际。前海军司令艾伦·韦斯特表示,虽然他对更多年轻人意识到国防的重要性感到高兴,但这一想法是“荒谬的”。他认为政府需要增加国防开支,而国民服役制度将“榨取”国防资金。许多年轻人也不同意这一计划,认为它剥夺了他们的自由。然而,一名17岁的年轻人表示,这将给许多年轻人带来目标,并指出国民服役制度在数十个国家都运作良好。 Tip 升级 package.json 中全部依赖包到最新版本 在 Vue 项目 package.json 中,要将全部依赖包升级至最新版本,可以使用工具 npm-check-updates 实现,如下所示: 全局安装 npm install -g npm-check-updates 或者,npx安装 npx npm-check-updates 检查并显示最新版本 ncu -u 重新安装 ...

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 }; 解题思路: 因为是千位分隔数,所以使用倒序遍历,然后通过找规律,如下所示: //index 0 123 const str = "1.234" //index 012 345 678 const str = "123.456.789" 从以上可知,str.length - i 的值得出为3、3和6,都是3的倍数,所以可以使用(str.length - i) % 3 == 0来找到要插入.的位置,加上当最后一位和第一位时不需要加上.,然后通过result依次拼接字符串,得到所求结果值。 题外话:最近总算把ARTS之前落下的进度赶上来了。好几次看着前面要补4篇左右,心里还是有点虚啊,但是从来没有要放弃,就觉得慢慢补回来就好了,不需要做任何心理建设,然后就补回来了。还是按正常节奏,每周完成一篇比较好。 Review Seafood could have higher levels of ‘forever chemicals’ - Breaking News English Lesson 一项新研究指出,海鲜中可能存在更高水平的“永久化学物质”。永久化学物质是人造毒素,不会分解。它们可以停留在人体血液中,导致各种健康问题,包括癌症、肾脏和肝脏问题、激素变化以及对胎儿发育的损害。来自美国达特茅斯学院的研究人员表示,应该为海鲜中的永久化学物质制定安全指南。他们说,这些毒素的水平在虾、明虾和龙虾等海洋生物中最高。这可能意味着喜欢寿司、生鱼片和虾仁鸡尾酒的人可能需要重新考虑他们的饮食习惯,减少一些海鲜的摄入量。 永久化学物质在20世纪30年代被开发出来。从20世纪50年代以来,它们被用于制造许多产品。它们通常存在于食品包装中。我们大部分的食品包装纸、外卖盒、比萨盒和其他食品容器都含有这些化学物质。几十年来,这些化学物质已经进入了我们的食物链。研究人员表示,海鲜中的永久化学物质水平较高。梅根·罗曼诺教授表示,她希望人们继续享用海鲜,但要意识到风险。她说:“我们的建议不是不吃海鲜。海鲜是蛋白质和欧米茄脂肪酸的重要来源。”她补充说,让人们更多地了解我们所吃食物的成分是很重要的。 Tip git pull放弃本地修改,强制更新。 ...

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

ARTS Week 30

Algorithm 本周的算法题为 747. 至少是其他数字两倍的最大数 给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。 请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。 示例 1: 输入:nums = [3,6,1,0] 输出:1 解释:6 是最大的整数,对于数组中的其他整数,6 至少是数组中其他元素的两倍。6 的下标是 1 ,所以返回 1 。 实现代码如下: const dominantIndex = function (nums) { const sortedNums = nums.toSorted((a, b) => a - b); if (sortedNums[sortedNums.length - 1] >= sortedNums[sortedNums.length - 2] * 2) { return nums.indexOf(sortedNums[sortedNums.length - 1]); } else { return -1; } } 解题思路: 先将数字从小到大排序,生成新数组; 然后获取最后一位,如果大于等于倒数第二位的数值乘以2,则表示存在满足条件的最大整数,否则返回-1; 通过indexOf在原nums数组中获取最大整数下标。 Review Rising auto insurance premiums fuelling inflation - Breaking News English Lesson 汽车保险费的飙升正在加剧美国的通货膨胀压力,成本以最快的速度上涨。仅在3月份,保险费就上涨了2.6%,这意味着成本比去年同期高出了22.2%。这些涨价导致了上个月通货膨胀率上升了0.4%。除汽车保险外,其他任何消费类别都没有像它一样飙升。Foxbusiness.com表示,美国汽车保险的平均费用已经超过每年2300美元,约合每月192美元。不断上涨的价格对最低收入者影响最大。对于那些在生活成本危机中努力维持生计的人来说,保险正成为一种更大的经济负担。 汽车分析师肖恩·塔克试图解释价格上涨背后的原因。他说:“我认为最大的因素是新车和它们越来越贵,所以如果你撞坏了你的车,替换成本非常高,而且现在小事故的费用也很昂贵。”他将现代汽车中的技术、小工具和安全设备的复杂性归因于更昂贵的修理和更换成本。更换电动汽车电池的费用可能在6500美元到2万美元以上。一个简单的刮擦可能会损坏昂贵的嵌入式传感器、摄像头和声纳。推动劳动力成本上升的一个因素是汽车技工的短缺。 Tip git命令窗口样式美化 用了N年的东西,一直没有关注样式问题,只觉得还行,但是最近安装nvm,发现一下字体看不清,就看下怎么设置样式,才发现这个可以右键Options然后进行设置,除了字体颜色、背景色,还有主题可选,但是试用了一下,不够美观,如下所示: 在网上查了一下,发现这个样式还不错。Git Bash界面的美化(一看必会)_git bash美化-CSDN博客,配置流程就是修改.minttyrc文件,位置在C:\Users\weihao,将里面的使用#注释,然后复制样式覆盖即可。 Share

2024-05-19 · 1 分钟 · 94 字