Tag: 编程

写在教娃编程视频300天

时间过得好快, 第300天了. 其中因为打COVID辉瑞疫苗第2针后反应很大暂停了一周, 还有几天娃不在状态暂更, 其它时间我都会带着娃坚持做这一件事. 回顾第一天: 还记得当时只是上传到我的油管帐号 DoctorLai, 当时还在AMAZON, 第二天例会的时候便和团队分享了, 当时同事还说我能在5分钟内讲清楚递归很厉害, 而且我的方法很特别. 后来就一稿多投到了B站 justyyuk 反而B站更受欢迎一些. 我做视频的初衷 早在很久之前就陆陆续续给娃讲了很多数学还有计算机的知识, 不过很零散, 学过了也没啥记录, 去年在朋友圈里发了几张教娃的照片, 有朋友说也想听, 所以做了视频分享一下. 看过我视频的就知道, 我是没有做任何视频剪辑的, 基本上视频就是拿着手机架在架子上, 第一天甚至没有架子, 只是很不稳的书上, 而且视频也没缩进, 就是很随意的拍了, …

我的面试谷哥GOOGLE伦敦SRE的经验和教训

今年疫情, 接到了谷哥和FB的面试邀请, 想着试试现在的水平如何便欣然接受. 每年都面试, 并不是说一定要换工作, 这是一个很好的让你在人才市场中保持竞争力, 查看自己不足, 检验你坚持刷题的一个好方法: 阶段性刷题的考核和目标. 谷哥(Google, 狗家 或被称为G家)是很多软件工程师梦寐以求的公司, 可能是媒体宣传他们家的福利有多么多么好: 有免费的员工餐厅, 有各种娱乐休闲的活动, 给的工资还高. 我5年前接到过面试邀请(当时问了一道队列+哈希表的题), 可惜当时水平太差连第一面45分钟的 coding 都没过. 再后来这几年一直投, 甚至去年找朋友内推都没法过简历关. 据统计: Google 面试成功率不到 0.2%(1000人不到2人), 难度甚至比上哈佛更大. 第一面要过一般是要BUG FREE而且不能卡. …

Microbit 游戏编程: 贪心算法也无法让贪吃蛇永生

上一次, 我们介绍了在Microbit上编写最简单的贪吃蛇游戏(Microbit 游戏编程: 不会吃胖的贪食蛇 (自带人工智能)), 不过只是个原形, 因为那只蛇并不会长胖, 有网友说更像是一个男孩爱上一个女孩疯狂的爱情故事. 这一次, 我们将对游戏的关键部分进行修改, 不过考虑到整个 Microbit 的屏幕才25个像素点, 我们加个限制让蛇在长度为10的时候停止生长, 这样的话, 只要你玩得好, 游戏能一直进行下去. 贪吃蛇的身体 由于蛇的身体不再是单个game.LedSprite对象, 我们将需要将蛇的身体块存储在数组中. 我们可以定义一个initSnake函数, 该函数需要传进一组蛇身体坐标并创建相应的精灵数组. function initSnake(arr: Array<number>) { let result = …

用 Javascript 做一个贪食蛇的游戏

贪食蛇游戏很有趣, 而且也不复杂, 是学习一门编程语言的最好的入门练手的项目. 我在加入GE后接触到GE开发的Magik语言(Wiki), 便很快的用它写了一个贪吃蛇的游戏. 今天, 我们就来用当今最火的语言 Javascript 来写一下, 你就会发现, 其实这个游戏很简单就能实现了. 画板 我们需要一个游戏场景, 也就是画板 Canvas, 画板上我们需要每次清空, 然后画上蛇和苹果. <canvas width="400" height="400" id="game"></canvas> 然后, 我们需要定义几个全局变量: var context; var canvas; // 画板 …

力扣 Leetcode 的刷题利器: 在线调试器和自动代码提示完成

力扣代码调试器 Debugger 最近 leetcode 刷题网站出了一个在线调试器. 个人感觉非常好用. 因为我平时是用 IPAD+蓝牙键盘来刷题, 而在 ipad 上是没有集成的IDE的, 对于调试来说, 只能很原始的让函数退出一个值, 然后尝试不同的输入来发现问题. leetcode在线调试器的好处 理论上来说, 你可以直接在浏览器里解决任何一道 leetcode 的算法题了. 这样很轻巧, 在 ipad + 蓝牙键盘就可以随时随地有空的刷题. 甚至是大屏的手机也可以. leetcode 调试器可以添加 关心的变量到 watch …

袋鼠过河题解(动态规化+贪心算法)

一只袋鼠要从河这边跳到河对岸, 河很宽, 但是河中间打了很多桩子, 每隔一米就有一个, 每个桩子上都有一个弹簧, 袋鼠跳到弹簧上就可以跳的更远. 每个弹簧力量不同, 用一个数字代表它的力量, 如果弹簧力量为5, 就代表袋鼠下一跳最多能够跳5米, 如果为0, 就会陷进去无法继续跳跃. 河流一共N米宽, 袋鼠初始位置就在第一个弹簧上面, 要跳到最后一个弹簧之后就算过河了, 给定每个弹簧的力量, 求袋鼠最少需要多少跳能够到达对岸. 如果无法到达输出-1 输入描述: 输入分两行, 第一行是数组长度N (1 ≤ N ≤ 10000), 第二行是每一项的值, 用空格分隔. 输出描述: …

C++ 编程练习题: 如何合并两个二叉树?

题意: 合并两个二叉树, 没有说不可以改变原来的二叉树. 合并的时候把结点求合. C/C++ 中二叉树的定义 在C或者C++中, 二叉树的定义可以很方便的用结构体来表征. 其中左右子树都是递归定义. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) …