ARTS Week 5

Algorithm 本周的算法题为 11. 盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 **说明:**你不能倾斜容器。 输入:[1,8,6,2,5,4,8,3,7] 输出:49 解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。 实现代码如下: var maxArea = function (height) { let left = 0; let right = height.length - 1; let area = 0; while (left < right) { let currentArea = Math.min(height[left], height[right]) * (right - left); area = Math.max(area, currentArea); if (height[left] < height[right]) { left++; } else { right--; } } return area; }; 解题思路: 定义两个指针left和right,分别指向容器的左边界和右边界。 定义一个变量area用于存储最大面积的结果,初始值为0。 使用一个循环,当left小于right时进行迭代:计算当前的面积,即min(height[left], height[right]) * (right - left)。Math.min()返回传入参数中最小值。 如果当前面积大于area,则更新area的值。 如果height[left]小于height[right],则将left右移一位;否则将right左移一位。 循环结束后,返回area作为最大面积的结果。 Review Napoleon’s Hat - ESL Lesson Plan - Breaking News English Lesson 拿破仑的帽子是拍卖史上最贵的,以210万美元的价格售出。 拿破仑大约有120顶帽子,本周这顶破记录的帽子由毛毡制成,上面有法国国旗的红、白、蓝三种颜色。 最近有好莱坞电影《拿破仑》上映,由雷德利·斯科特执导,华金·菲尼克斯饰演拿破仑,凡妮莎·柯比饰演约瑟芬。 Tip 项目中有些接口,请求的资源大小有200KB之多,在前端页面交互使用上体验很差,而这些资源通常都不会改变,频繁去请求作用不大,徒增服务器负担。为了解决这个问题,引入HTTP 304 状态码机制,当浏览器发起一个条件请求到服务器时,服务器会使用304状态码来表示请求资源未更新,可以直接使用当前缓存的资源,无需再重新从服务器下载。 ...

2023-11-25 · 1 分钟 · 152 字

ARTS Week 4

Algorithm 本周的算法题为 283. 移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums = [0,1,0,3,12] 输出: [1,3,12,0,0] 实现代码如下: var moveZeroes = function(nums) { // 记录数组中存在0的个数 let count = 0 // 使用递归的方式,遍历删除数组中的0,并且记录数组中出现0的次数。 deleteZeroes(nums) function deleteZeroes(nums) { for (let i = 0; i < nums.length; i++) { if (nums[i] == 0) { nums.splice(i, 1) count++ return deleteZeroes(nums) } } return nums } // 根据数组中出现0的次数,将删除全部0后的数据,在尾部添加count次0元素。 for (let i = 0; i < count; i++) { nums.push(0) } return nums }; 解题思路: 首先,先找到数组中0的位置,然后依次将其从数组中删除,并记录出现0的次数。 根据0出现的次数,在数据尾部加上0。 Review Your Life Is Built By What You Do After Your Work Hours | by Anjishnu Ray | Medium 你的工作会给你的人生带来价值,但不会很多,特别是你还很年轻的时候,你的人生是由你下班后的空闲时间决定的。 我们通常工作6~8个小时,除去睡觉的时间,仍然还有8个小时的空闲时间。这些时间足够让你用来创造更有可能性的未来。 成功人士总是会选择艰难的道路,首先你要在脑海中想象自己就是一位成功人士,然后在现实中,也这样认为。在这些下班后的空闲时间里,你是选择去Netflix网站看电影,还是用来打磨你的技能,你是得过且过,还是为你的将来制定周详的计划?成功人士总是选择艰难的道路,因为尽管很困难,但它是有价值的。 成功人士总是优先考虑成就而不是舒适度。这是他们的生活方式。他们每天如此,最终使他成为现实中的成功人士。 当你工作的时候,你就是在工作,你是在成长,在进步,在完成项目,这没有错。但是你是否想过利用你的空闲时间来打磨你的技能,实验和尝试新的事物?如果这些努力给你带来好处,你会后悔吗?肯定不会,但是如果你浪费你的空闲时间在肤浅的事情和盲目的娱乐上,肯定会让你后悔。不是说现在,而是在未来的某个时刻。 休息能够恢复你的精力,放松能让你感到舒适。我们是人,当然需要休息,我们需要恢复精力和适当放松。这些都是必需品。但是安逸?我们为什么觉得安逸是一个必需品呢?它不是必需的,不应该成为一个必选项。 就像那些成功人士说的那样,最好的潜力往往能在人们的坟墓中找到。这是因为直到他们死去,他们都没有在梦想中投入足够的努力和精力。 青春是用来燃烧的,而不是用来消磨的。把这句话印到你的脑海之中吧。 当人们老去之时,唯一的希望就是还能够拥有更多的时间。不,这不可能。当你变老之时,你是为自己的一生感到自豪,还是后悔不已呢? 你不会活上一千年。 ...

2023-11-12 · 1 分钟 · 129 字

RMPW Week 1

Read 《新参者》仿佛还是在沿用《白夜行》的写作方式,表面上一直游离在剧情主线之外,一直在叙述一些仿佛和凶杀案无关的事情,实际上环环相扣,直到最后,才会把所有的事情全都串起来。整本书不算特别惊艳,如果《白夜行》可以是9.7分,那《新参者》可能也就8.0分,行凶者是谁也不觉得有多意外,可能是很晚才出场的缘故,一般最不可能是凶手的,结果是凶手,这种反差可能才会更为强烈,行凶的动机也略微俗套。书中觉得出彩的,反而是一些温暖人心的小事情,大多都是关乎亲情。不同的店铺,不同的家庭,不同表达爱的方式。印象中特别深刻的是,三井峰子对其多年未见、关系紧张的儿子弘毅表达的爱意,那是一个美丽的误会,但却深入人心。 动机这东西,只要本人不说,就没人知道。 男人解决不了婆媳间的矛盾,事情没那么简单。你能做的就是倾听各自的说辞。只要默默听就行,一定不要反驳,不然只会火上浇油。听完就做出理解的表情,说她有道理,说得对,然后告诉她会找机会把她的想法转达给另一方。当然,千万不要真去转达。总有一天,她还会责问你,事情办得怎样了。到时你就要忍,让她们把矛头指向你。你能做的只有这些。 这个嘛,果然是因为你。 三井女士搬到小传马町后,每天应该都过得很快乐。她完全沉浸在默默守望的愉悦中了。 我从和户纪子的事中明白了一个道理,那就是男人要想让女人幸福,就得像牛马一样工作。但峰子的行动又告诉我,仅仅那样也不行。我真是蠢极了。 我的确疼爱儿子,而且对这点很有自信。但疼爱和重视不一样。所谓重视,是考虑孩子的未来,不断为他做出最好的选择,我却没能那么做。我只是为自己有了一个可以倾注爱的对象而极其高兴。 当然,孩子总有一天会长大,不会永远那么可爱,有时还会闯祸。这种时候,父亲往往会选择逃避。工作一忙,他们更为自己找到一个体面的借口。我也一样。妻子跟我说起儿子时,我只嫌她啰唆,根本不想跟她一起解决问题。当妻子因此责怪我时,我总会说自己有工作。即便工作不忙,我也总把这句话当武器,将所有麻烦都推给妻子,甚至在听说儿子交了狐朋狗友时,我也并不在意。我乐观地认为,稍微活泼一点的男孩子总有一段时期会这样。实际上,我的乐观只是在自欺欺人。 Movies 去年五六月份就听说克里斯托弗·诺兰要拍一部关于原子弹的电影,当时并不知道奥本海默这个人,后来才去了解了一下。说到诺兰的实拍,不免会在各平台看到很多梗图,印象最深的是女王和天行者的表情图,真的要实拍吗?真的吗……这时想起来还是让人忍俊不禁。时间过得太快了,本来以为诺兰的新作还要很久才能看到,没想到电影那么快就上映了。我上次看诺兰的电影应该是《信条》,虽然很烧脑,但是看完还是觉得不错,我还是比较喜欢有点新意或真正用心去拍的电影。 有时候我也在想什么才是一部好电影?是票房好?是口碑好?还是看导演是谁?演员是谁?或者说我喜欢的就是? 《奥本海默》整部电影时长长达3个小时,在电影院里算是相当长了,剧情主要讲述了奥本海默这个项目经理在二战期间带领团队研制原子弹的过程,这就是”曼哈顿计划“,以及二战结束后所遭遇的不公正待遇。看完这部电影,我不禁想起《模仿游戏》、《萨利机长》,还有《钱学森》、《横空出世》,这些电影都与《奥本海默》有相似之处,可能是因为它们都涉及到有毒的青苹果、拍摄手法、个人遭遇以及有关原子弹的话题。 诺兰在这部电影中依旧使用了他擅长的时间线穿梭叙事手法,如果观影中稍不注意,就会觉得这电影被剪得稀碎,难以理清整部电影剧情的走向。加上彩色和黑白画面的交叉使用,就好像正派和反派的对立着,从不同视角叙说这一段历史,然后才汇集于故事的结局之中,让这种稀碎感更为严重,总的来说,电影还是很能发人深思的。 核武器的滥用会给人类的未来带来怎样严重的后果?电影中展现了很多奥本海默对后果的想象,无尽的爆炸,无休止的灭亡,哀乐响彻蓝色星球上空。 “现在我成了死神,世界的毁灭者。” 基里安·墨菲曾在蝙蝠侠三部曲中饰演稻草人,但我不记得他也出演过《盗梦空间》,这个演员的长相确实很有特点,尤其是他那如海洋一样深邃的眼睛。我听说他主演的《浴血黑帮》电视剧也很不错,打算找时间看一看。 电影中也讲了奥本海默的情史,不得不说,奥本海默,你可真的是玩得花。 在《奥本海默》中,只有在实验引爆时才出现蘑菇云,本来以为会看到小男孩和胖子的实拍,可惜并没有。 电影的音乐非常出色,特别是几段旋律,例如American Prometheus、Can You Hear The Music和Destroyer Of Worlds等,我自己也专门找了一下这些曲子。 另外,爱因斯坦在电影中出现了几次,这些画面我都非常喜欢,特别是最后和奥本海默在湖边的对话,一下子就升华了电影的主题。 “有一天,当他们对你的惩罚足够多时,他们会给你提供鲑鱼和土豆沙拉,发表演讲,给你一枚奖章。请记住,这不是为了你,而是为了他们”。 尽管原子弹在二战的胜利中发挥了重要作用,作为有良心的科学家,我们应该始终为全人类的未来着想。然而,现实往往是残酷的,鸟尽弓藏,到头来只不过是政治斗争中的牺牲品,棋盘上的一枚棋子。 Poetry Writing 其实,本来不打算整这第二个打卡活动了,也就是RMPW,本来ARTS已经够花时间的了。但是不整这个,一来对不上AR7这个网名,本来这个的意思就是这两个打卡活动的开头字母,外加每周一次的意思。 每次打算去做这个事情,总是害怕做不到怎么办?读书笔记要整理,电影要看,诗词要背,文章要写。仔细想一下,还是很花时间的,看什么书,什么电影,背哪些诗词,自己是很明白的,但是要写什么,倒是难住我了。一开始的设计思路是,把看的书,外加看的电影和背的诗词,联系起来,然后在跑步时,构思一下文章,甚至一篇小说,但是,总觉得太耗时间了,在跑步机上面我要看书的。然后就是,基于世界名画,构思一篇小说,或者看图写话,用文字准确描绘名画的场景,这样一来可以知道世界名画相关知识,增长知识面,二来我也比较感兴趣。但还是觉得不妥,总觉得要素过多,不便于坚持下去,一开始应该从简单的开始,先能坚持一段时间,再慢慢上强度,思来想去,就变成现在这样子,“每周一篇原创作品,畅所欲言,题材不限,体裁不限,如不是诗词,字数800字左右。”本来打算只是100字的,贵在坚持嘛,但是又太简单了,毕竟是以周为单位,不是以天为单位。 但具体要写些什么呢? 我自己本来就有写日记,心里话都在里面了(你信么?不信就对了),然后平时工作上面遇到的严重问题,检讨和反思过程也要写一下,加上健身日记,也写写心得体会,接下去要去完善的部分,还有平时的技术博文,感觉自己写东西的机会还是很多的,但大多都率性而为,没有任何约束就是了,通常都是简单检查一下,有没有错别字,有没有病句就够了,至于遣词造句,梳理文章整体脉络,结构,逻辑自洽,是没有什么深入的,别人看得懂就行。想到这些,我就觉得,还是对自己要求高一些,毕竟,我都快忘了写文学方面文章的感觉是什么样的了。不管悲春伤秋?矫揉造作?无病呻吟?还是堆砌辞藻?都有吧,也都忘得七七八八了。 写到这里,我好像明白为什么这个RMPW被我推迟了一个多月了,因为总是打算去做这些事情之后,才去完成这些环节的工作,比如要去看新的书籍、电影、诗词,完成之后,才可以开始不是?但是,其实不一定非要这样,还有其他的思路,就是先掏空自己,先把自己所做过的会的,先整理出来,看的书和电影,读书时代背了还记得的诗词,先把这些依次输出,一来相对简单,而且刚好可以借此机会重温,二来会促使自己要不断输入,不然就没有东西可写了。 在小学那时数学老师就告诉我们,写文章的技巧,就是不管三七二十一,想到什么写什么,不要去想写下的文字到底符不符合作文主旨,哪怕前言不搭后语,都可以,全都写出来之后,你就知道自己应该怎么办了。

2023-11-12 · 1 分钟 · 38 字

ARTS Week 3

Algorithm 本周的算法题为 128. 最长连续序列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1: 输入:nums = [100,4,200,1,3,2] 输出:4 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。 实现代码如下: var longestConsecutive = function (nums) { // 如果数组为空,则值为0,否则最小为1 let sequenceMaxValue = nums.length == 0 ? 0 : 1 let category = {} // 去重,使用对象key唯一性的特性实现数组去重。 nums.forEach(item => { if (category[item]) { category[item].push(item) } else { category[item] = [item] } }) let result = [] // 获取最终的去重后的数组 for (const key in category) { if (Object.hasOwnProperty.call(category, key)) { result.push(Number(key)) } } // 将数组排序,从小到大排序 result.sort((x, y) => { return x - y }) // 设置顺序起点为数组下标为0的位置 let latestStartIndex = 0 // 设置顺序起点值,下标为0的值 let latestStartValue = result[0] // 用来记录每个顺序,以起点为key,总共有多少次。 let sequenceCountObject = {} result.forEach((item, index) => { // 因为设置了latestStartValue = result[0],默认会走else逻辑,sequenceCountObject[0]会多一次。 if (index > 0) { // 实现的逻辑是,比如数组为[1,2,3,4,5,8,9,10],当后一个数,减去它的下标等于当前值latestStartValue(4-3=1),意味着还是处于顺序中,如果不是,比如到8了,那就开始新的顺序起点。 // 其中,因为第一个起点数,不是每次都是下标0开始的,所以不能只是item - latestStartIndex,而是item - (index - latestStartIndex)拿到差值。 if (item - (index - latestStartIndex) !== latestStartValue) { latestStartIndex = index latestStartValue = result[index] } else { // 如果当前值减去下标差值一直等于顺序起点值,意味着还处于顺序中,就加到对象这个以每个起点下标为key的值上,+1。 if (sequenceCountObject[latestStartIndex]) { sequenceCountObject[latestStartIndex] = sequenceCountObject[latestStartIndex] + 1 } else { //当对象中还没有存在这个起点下标的key时,默认从1开始,因为当latestStartIndex开始新的起点的时候,是走上面的if逻辑的,意味着这里要把起点的次数算上,所以是1+1,第一个1是起点,第二个1是记录次数 sequenceCountObject[latestStartIndex] = 1 + 1 } } } }) // 获取多个顺序长度的最大值,如果比当前值大,则赋值最新。 for (const key in sequenceCountObject) { if (Object.hasOwnProperty.call(sequenceCountObject, key)) { const value = sequenceCountObject[key] if (value > sequenceMaxValue) { sequenceMaxValue = value } } } return sequenceMaxValue 解题思路: ...

2023-11-08 · 2 分钟 · 247 字

关于RMPW

RMPW 是我基于陈皓提出的 ARTS 所设想的一个关于写作方面的训练活动,以周为单位。 Read:每周一本书,概括该书内容,摘抄好句,思考感悟。 微信读书-正版书籍小说免费阅读 (qq.com) Movies:每周一部电影,概括作品内容,摘抄好句,思考感悟。 LIBVIO-官网 Poetry:每周背一首诗词/诗歌。 古诗文网-古诗文经典传承 (gushiwen.cn)上面有译、注、赏、音、背功能,还是很方便的。 writing:每周一篇原创作品,畅所欲言,题材不限,体裁不限,如不是诗词,字数800字左右。

2023-11-08 · 1 分钟 · 13 字