Tag: leetcode

教娃(比教媳妇)编程/数学更有成就感

从2020年11月22日开始第一课,那时我还在亚马逊 AWS S3 团队,孩子们还很小。最初教娃是每天一课,后来调整为每周三课,再到两课,最后稳定在每周一课(中间还停过大约半年)。 我媳妇说得挺对的——我确实挺喜欢教别人,从中能获得一种满足感和成就感。当然,这只是原因之一。当初教孩子,还有一个小心思:有两个固定“听众”,可以让我更自然地练习表达能力和英语,同时也能顺便刷题,再把知识教给孩子,一举多得。好在两个孩子也挺配合,而且都是理科型,不知道是不是受了我的影响。 其实内容并不局限于编程(数据结构与算法),有时也会穿插一些数据库、数学和逻辑等内容,整体以一种自由探索式的学习为主。 到今天为止,一共给他们上了739节编程课(五年半)。从去年开始,我每天带着弟弟刷 LeetCode,让他多动手实践——他敲代码,我在旁边指导(到今天已经坚持了400天),最近哥哥也加入进来了。说实话,这种陪伴式的成长过程,真的很有成就感。 我以前也试过教我妻子编程,但很快就发现这并不是她感兴趣或擅长的事情。时间一长,她基本也就忘得差不多了。这其实很正常——人往往很难记住那些既不感兴趣、也不常用的知识。这件事也让我意识到:自己擅长,并不代表就一定能教好别人,尤其是在对方缺乏兴趣或动力的情况下。 有人质疑,现在刷题已经没用了。确实,在 AI 时代,单纯为了面试而刷题的意义在下降。但对我来说,教孩子刷题这件事的价值,从来就不只是“做题”本身,而在于它背后的能力培养:比如智力训练、逻辑思维的建立、专注力的提升,以及延迟满足的能力。同时,这也是一种高质量的亲子陪伴方式,在一起解决问题的过程中,关系会变得更紧密。 至于教媳妇,其实意义就完全不一样了。更多是一种尝试去理解彼此思维方式的过程,也是在探索“沟通”和“教学”的边界——你会发现,有些事情不是努力就一定有结果,有些人也不需要被“改变”。与其强行去教,不如尊重差异,找到各自更舒服的相处方式。换句话说,教媳妇最大的收获,反而是让我学会了不再执着于“教会”,而是学会“放手”和“理解”。 RING摄像头有30天(付费)云记录,有时候我会保存一下,以后有空整理一下重温一下,等娃大了,给他们看。 来两张媳妇前几年学编程一脸生无可恋,哈哈。 英文:Programming is not my wife’s thing. Bilibili | 微博 | X | Instagram | …

竞技编程的边际效应(Marginal Effect)递减

什么是竞技编程(Competitive Programming)? 竞技编程的英文是 Competitive Programming,是指在限定时间内通过编写程序解决一系列算法问题的比赛形式。比较知名的赛事有 ACM-ICPC、Codeforces、Google Kick Start 等。这类比赛不仅考验选手的算法功底和编程技巧,还需要良好的思维敏捷性和代码调试能力。 比如我二十多年前在高中参加的 ICPC,就是一种典型的竞技编程。当时我们使用的编程语言还是 Turbo Pascal,比赛时间是三个小时,要解决四道题。那时候只要程序能输出正确的结果就行了,根本不太在意代码的实现方式和写得是否优雅。 我家娃在做 LeetCode 的一道算法题时,由于算法不够高效,有两三个测试用例出现了超时。他索性“投机取巧”地加了一个 if 判断,针对那些特定的输入直接返回正确结果。这样做在 LeetCode 上是可行的——前提是你知道测试数据,并能手动处理特殊情况。 但在实际的比赛中,这种做法往往行不通。一方面你无法提前知道测试输入;另一方面题目设计者也会故意防止这种“硬编码逃课”手法,所以比赛更要求通用、稳健的算法方案。这也是竞技编程和普通刷题平台之间的一个重要区别。 🏆 ACM-ICPC(国际大学生程序设计竞赛) 由 ACM 发起,目前由 ICPC Foundation 主办。 …

力扣刷题打卡2209天竟然断了, 哎

坚持6年的力扣刷题打卡作天断了。昨天开了一整天brainstorming 晚上陪媳妇过生日。然后就给忘了,还好的是力扣国服还没断。 2019年3月2日 我在美国通用电气午休的时候太无聊 拿起IPAD就刷了一题。 谁曾想:这一刷就是2209天。这六年时过境迁,很多事情物是人非。我也从美国通用电气GE(General Electric)到亚马逊 Amazon AWS 再到现在的微软剑桥研究院MSRC。 力扣每日一题打卡是可以补签的,只需要花70点积分就可以 Time Travel 回到本月补上一签。只不过那个墙是补不了的,没刷就是空的。 力扣美服是可以同步到国服的,但是目前是没有办法反过来把国服的刷题记录复制一份到美服的。可能,这就是注定的吧,肯定会有不完美的。还好我不是处女座,这么一点不完美不会逼疯我的,哈哈。我还是会继续刷题的。刷题努力提升自己,好处多多。 本文一共 348 个汉字, 你数一下对不对. 力扣刷题打卡2209天竟然断了, 哎. (AMP 移动加速版本) 赞赏我的几个理由. ¥ 打赏支持 扫描二维码,分享本文到微信朋友圈

娃开始每天都在刷力扣, 他长大以后想当软件工程师

弟弟说,他想像我一样长大后成为一名程序员。然而,随着 人工智能/AI(比如ChatGPT) 的飞速进化,未来或许程序员这个职业都会被取代。这一两年,互联网大厂的招聘也明显减少了。 不过,我依然认为学习编程是一件好事。写程序不一定是为了当码农,刷题可以锻炼思维。之前教了他 700 天编程,但从未让他真正写代码,大概已经忘得差不多了。现在每天带着他刷题,也算是一次复习与再学习的过程。 对我来说,每天陪着他一起刷题,其实也相当于我自己做了一题。大部分时间里,我不亲自敲代码,而是我讲解,孩子来动手,这样能让他更熟悉代码,学得更快。 微博:我娃又在淘气了. 一身反骨: 我娃说他是想看看多添加几个if 会不会slow it down 相比之下,哥哥对金融更感兴趣,未来想从事相关行业,所以我没有强求他一起刷题,但有时候他也会在一旁听着。 乔布斯曾说:“这个国家的每个人都应该学习编程,因为编程能教会你如何思考。”(It teaches people how to think.) 21 天可以养成习惯 我的儿子现在每天都在刷题,他说想成为一名软件工程师。但他还不知道,ChatGPT 正在统治世界,未来可能不再需要那么多程序员,尤其是初级工程师。 自己这辈子也就这样了,看不到希望,所以鸡个娃。每天带着娃刷力扣,等于自己也刷了一道。 视频:油管/Youtube | B站/小破站 | …

在LG的OLED智能电视下刷题/力扣

装修时花大价钱买的65寸LG OLED智能电视(4K),挂在厨房后利用率很高。 平时一家人吃饭时会看看综艺,有时候孩子们会看他们喜欢的内容,比如游戏视频、宝可梦和超级玛丽等。 有一天,偶然发现老婆用电视内置的浏览器操作,看她用遥控器当鼠标,配合屏幕上的电子键盘访问了一些国产视频网站。顿时灵感来了:这电视不是可以用来刷题吗?于是立刻行动起来,把家里闲置的蓝牙鼠标和一把KeyChron机械键盘(支持蓝牙和Type-C两种模式)找出来。然而,电视却无法识别这两个设备,略感遗憾。 不过,电视上显示支持特定型号的蓝牙设备,还列出了推荐清单。最终我入手了相对平价的罗技M535蓝牙鼠标和Arteck键盘,总共花了55英镑。对比之下,苹果的键盘Apple Magic Keyboard和鼠标Apple Magic Mouse 2加起来要180英镑左右(99+79),贵太多了。 实际体验下来,电视浏览器的运行速度稍慢,打字时有些延迟,而且每次输入时屏幕都会弹出电子键盘,还需要按ESC手动隐藏。不过整体来说,刷力扣/LeetCode的简单题还是够用的。吃饭时趁机给孩子刷两道题,就当复习了。 网友建议: “可以买个Mac Mini。” “直接用MacBook投屏也行啊。” “都接键鼠了,可以用串流软件远程操作家里的电脑。” “几十磅买个小型x86主机接上去效果更好。” 确实,电脑投屏是个不错的选择,但老婆不允许在厨房放电脑。这次的重点是直接利用电视的浏览器搭配蓝牙鼠标和键盘,方便轻便,简单实用。把电视当成一个电脑,好过于再依赖于任何外接设备(除了鼠标和键盘)。 您之前连接的设备会自动连接。要断开现有连接,请单击“断开连接”。 建议您使用已测试与此设备兼容性的产品。 蓝牙鼠标:Logitech M535、Logitech Mx Master 2s、Apple Magic Mouse 2 蓝牙键盘:Logitech …

十年: 力扣刷题2000天

前不久,力扣说我刷题刷了2000天,不是连续的,这个是一共刷的天数。2000天也就是5.479年。 我的力扣,欢迎围观:https://leetcode.com/u/justyy/ 注册力扣帐号是2013年10月10号,当天提交了6次。当时是在谢菲尔得/Sheffield。 后来就是断断续续,甚至有很长一段时间都没有刷,直到2019年3月2日开始才未间断刷到今天(当时拿着Ipad中午在美国通用电气的食堂里刷题)。2016年竟然4月份连续刷了25天,我已经忘记当时为啥这么有闲情逸致了。哦,当时已经搬到了剑桥/Fen Drayton了,可能在准备谷歌的面试。 019年在美国通用电气/General Electric工作的时候中午吃完饭在湖边着着IPAD刷题。 从2013年到2024的力扣刷题之路,一点点改变,一点点变好。 现在刷题是保持面试状态的好方法,就像飞机飞到高空时油耗已经减少,我希望自己能维持这个状态。每天打卡,哪怕有时只是拷贝代码,依然会稍微思考并熟悉解法和算法。每天坚持打卡还能积累积分,兑换力扣衬衫。 英文:Milestone: Leetcoding for 2000 Days 网友:以后每天比比看是cursor做得快 还是你快。 答:刷题的目的又不是比快。让脑子思考,训练脑子。 网友:惭愧,我在 GE时候天天打酱油,群主确是每天在刷题飞。 网友:看似不起波澜的日复一日让我们看到坚持的意义! 本文一共 475 个汉字, 你数一下对不对. 十年: 力扣刷题2000天. (AMP 移动加速版本) 赞赏我的几个理由. …

熟能生巧 – 刷题的一些技巧的经验之谈

坚持在 leetcode 刷题已经有近两年了, 刷着刷着就成习惯了, 就像每天刷牙吃饭一样, 不刷会很不自然. 刷题的收获还是有挺多的, 特别是对数据结构和算法有了进一步的了解. 还有一些设计题, OOP面向对象, 甚至是数据库SQL和BASH编程还有就是多线程类型的题都能得到温故而知新. 每天习惯了打卡, 早上起来喝杯咖啡刷个题, 特别是这几个月疫情在家, leetcode有那种每月Challenge, 刷一题得10积分, 还有就是会员题35分一题, 是快速拿积分的好方法(平时每天登陆才得1分, 一件T-shirt 得6000分换, 按照一天10分, 大概不到2年就能换衣服了) 为啥要刷题? 对于搞计算机的码农, 刷题是找到一份好的搬砖工作最廉价最有效的方法了. 很多屌丝能通过刷题进入Big4, 改变命运, 迎娶白富美. 亚麻就有很多年轻的小姑娘(听说狗家的也是), …