February 2024

LeetCode Contest 386

100224. Split the Array 给你一个长度为 偶数 的整数数组 nums 。你需要将这个数组分割成 nums1 和 nums2 两部分,要求: nums1.length == nums2.length == nums.length / 2 。 nums1 应包含 互不相同 的元素。 nums2也应包含 互不相同 的元素。 如果能够分割数组就返回 true…

LeetCode Contest 385

今天是节后工作第一天,还是祝大家龙年吉祥万事如意,还有开工大吉!然后第一题和最后一题一样,我就只放最后一题的题解,跳过第一题了。 100229. Find the Length of the Longest Common Prefix 给你两个 正整数 数组 arr1 和 arr2 。 正整数的 前缀 是其 最左边 的一位或多位数字组成的整数。例如,123 是整数 12345 的前缀,而 234 不是 。 设若整数 c…

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"…