Biweekly Contest 124

100221. Maximum Number of Operations With the Same Score I 给你一个整数数组 nums ,如果 nums 至少 包含 2 个元素,你可以执行以下操作: 选择 nums 中的前两个元素并将它们删除。 一次操作的 分数 是被删除元素的和。 在确保 所有操作分数相同 的前提下,请你求出 最多 能进行多少次操作。 请你返回按照上述要求…

利用云主机编译Lean的OpenWRT固件

书接上会,之前用N100作为软路由。N100一切都挺好,但是功耗有点高,而且机器占地面积也有点大。同时所有功能都集成在N100的话,N100一旦重启,家里整个网络就崩了。还是有一个自己独立的软路由机器比较安全。 挑了一圈淘宝,还是友善家的R5C比较小巧好看。选好机器,接下来就是寻找固件了。可惜R5C的固件有点少,想想还是直接自己编译一个固件算了。 准备工作 国内用户最好有梯子环境 Ubuntu 22.02 LTS 推荐配置机器的内存大于等于4GB 这里需要注意Ubuntu一定要是22.02 LTS,否则编译会出错。因为新的固件GCC版本已经到11,老的Ubuntu 18 GCC是9版本,GCC9编译会出现语法不兼容的问题。 其次一个重要的地方是需要有梯子,很多源码下载牵涉到链接github或者openwrt官网,没有梯子的话很容易因为文件下载失败重启。 最后内存大于等于4GB非常重要,编译过程中有一个步骤会使用大概2.7GB内存,内存太小的话,会直接编译失败。用swap内存也没办法解决这个问题。 为了简单的完成环境搭建,我就直接用中国香港的腾讯云配置环境了。腾讯云可以按量计费,配置的机器是SA5 4核16GB内存(AMD Yes)的机器,一个小时的开销大概是1.6元。 编译命令行 Lean大神的Git上,其实已经把编译的步骤写的非常清晰了。推荐不要使用root账号编译,因为腾讯云默认登陆的用户是ubuntu。 我这里就按照R5C的配置过程写一下: sudo apt update -y sudo apt full-upgrade -y sudo apt…

LeetCode Contest 384

100230. Modify the Matrix 给你一个下标从 0 开始、大小为 m x n 的整数矩阵 matrix ,新建一个下标从 0 开始、名为 answer 的矩阵。使 answer 与 matrix 相等,接着将其中每个值为 -1 的元素替换为所在列的 最大 元素。 返回矩阵 answer 。 测试样例: 输入:matrix…

LeetCode Contest 383

100214. Ant on the Boundary 边界上有一只蚂蚁,它有时向 左 走,有时向 右 走。 给你一个 非零 整数数组 nums 。蚂蚁会按顺序读取 nums 中的元素,从第一个元素开始直到结束。每一步,蚂蚁会根据当前元素的值移动: 如果 nums < 0 ,向 左 移动 -nums单位。 如果 nums > 0 ,向…

Biweekly Contest 123

100222. Type of Triangle II 给你一个下标从 0 开始长度为 3 的整数数组 nums ,需要用它们来构造三角形。 如果一个三角形的所有边长度相等,那么这个三角形称为 equilateral 。 如果一个三角形恰好有两条边长度相等,那么这个三角形称为 isosceles 。 如果一个三角形三条边的长度互不相同,那么这个三角形称为 scalene 。 如果这个数组无法构成一个三角形,请你返回字符串 "none" ,否则返回一个字符串表示这个三角形的类型。 测试样例: 输入:nums = 输出:"equilateral" 解释:由于三条边长度相等,所以可以构成一个等边三角形,返回 "equilateral"…

基于Debian 12,利用Docker的OpenWRT搭建

最近心血来潮的,买了一个N100的机器。12代全小核的N100,虽然功耗还是有点高(待机大概11W,满载20W),但是性能确实实打实的大幅度提升。看着同频率的N100的性能已经和Skylake的机器差不多了。 这篇我就不详细说Debian12怎么安装了。具体可以百度Debian官网下载。稍微有一点tip,国内的话,因为在线安装需要链接国外服务器,比较容易出现网络异常。建议从Debian Download中寻找A larger complete installation image: contains more packages, making it easier to install machines without an Internet connection.来完成下载。 现在我们就假设Debian安装已经完毕,我们在物理机上部署Docker + OpenWRT。 Docker 安装和OpenWRT镜像下载 删除多余的docker依赖 for pkg in docker.io…

LeetCode Contest 382

100215. Number of Changing Keys 给你一个下标从 0 开始的字符串 s ,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如 s = "ab" 表示按键变更一次,而 s = "bBBb" 不存在按键变更。 返回用户输入过程中按键变更的次数。 注意:shift 或 caps lock 等修饰键不计入按键变更,也就是说,如果用户先输入字母 'a' 然后输入字母 'A' ,不算作按键变更。 测试样例: 输入:s…

LeetCode Contest 381

这周本质上就2题,我就放两个题解了。 100192. Minimum Number of Pushes to Type Word II 给你一个字符串 word,由 不同 小写英文字母组成。 电话键盘上的按键与 不同 小写英文字母集合相映射,可以通过按压按键来组成单词。例如,按键 2 对应 ,我们需要按一次键来输入 "a",按两次键来输入 "b",按三次键来输入 "c"。 现在允许你将编号为 2 到 9 的按键重新映射到 不同 字母集合。每个按键可以映射到…

LeetCode Contest 380

100162. Count Elements With Maximum Frequency 给你一个由 正整数 组成的数组 nums 。 返回数组 nums 中所有具有 最大 频率的元素的 总频率 。 元素的 频率 是指该元素在数组中出现的次数。 测试样例: 输入:nums = 输出:4 解释:元素 1 和 2 的频率为…