LeetCode 第371场周赛
Because work requested, I have to study English now. So I will write the problem solutions with English. 2932. Maximum Strong Pair XOR I | 2932. 找出强数对的最大异或值 I Same with 2935 2933. High-Access Employees | 2933. 高访问员工 Firstly, we can create a map<{employee}, {access times array}> to distinguish access times of each employee. For each employee, we sort their access times array from little to big. And then iterate over this array, when there is $ access_times_{i} - acces ...
记账
背景 2019 年开始持续一年多使用叨叨记账软件进行记账。最开始一直是花费一笔就记一笔,然后变成每天记一笔,到后来实在太懒就一个月记一次。 后面可能是加班比较多,连着好几个月都没有记账了,一条一条的记账实在太累。 于是就想找找有没有工具可以自动记账,后面发现实在是没有。哪怕是系统层面也不是很容易的能获取不同支付 APP 的消费数据。 后来找了很多的记账工具,发现钱迹这个软件批量导入比较方便,就迁移到这里来了。 但问题又来了。 目前我个人涉及支出的几个软件下载的账单多少有些问题: 支付工具 问题 微信 会包含信用卡/招商银行卡的支出分类不好,很多分类都只是商户消费。 支付宝 会包含信用卡/招商银行卡的支出没有分类,导入到钱迹的只有其它。 招商银行卡 导出的是 PDF只有日期,没有时间 招商信用卡 导出的是 PDF只有日期,没有时间 京东金融 不支持导出只有京东的支持和白条在这里 美图 美团也是直接用 信用卡/招商银行卡 进行支出的。 Apple Store 有些分期也是直接用 信用卡/招商银行卡 进行支出的。 所以在这里记录下拉各软件账单及解 ...
MacOS 安装 WPS 国际版及汉化[不需要汉化了]
背景 偶尔需要处理 Excel、Word、PPT 的时候还是需要使用 Office 软件,但 MS Office 需要收费,又不想用破解版,于是选择了 WPS ,但 WPS 国内版的乱七八遭东西实在太多。最近发现 WPS 居然有国际版,国际版的就良心多了,没啥乱七八遭的东西。 下面的不用看了,现在国际版已经默认带中文了,从国际版官网下载就好了。 -> https://www.wps.com/ 下面的不用看了,现在国际版已经默认带中文了,从国际版官网下载就好了。 -> https://www.wps.com/ 下面的不用看了,现在国际版已经默认带中文了,从国际版官网下载就好了。 -> https://www.wps.com/ 安装 安装国际版首先得能够「出国留学」,然后执行 brew 命令就好了。 123# 先安装国内版拿到语言包之后再安装国际版brew install wpsoffice# 注意 wpsoffice-cn 这个是国内版。 汉化 因为是提供给国际友人的,国际版没有自带中文。所以需要自己手动汉化一下才行。 汉化首先得有 WPS 中文的语言包,最简单的还是 ...
LeetCode 第68场双周赛
GG 感觉 5946. 句子中的最多单词数 遍历每个句子,split一下后的数组元素个数最大的那个就是结果了。 123456class Solution: def mostWordsFound(self, sentences: List[str]) -> int: ans = 0 for s in sentences: ans = max(ans, len(s.split(' '))) return ans 5947. 从给定原材料中找到所有可以做出的菜 对每个菜dfs下去就好了,要注意下循环的情况。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546class Solution {public: unordered_map<string, int> m; unordered_map<string, vector<string&g ...
LeetCode 第272场周赛
5956. 找出数组中的第一个回文字符串 回文串判定不在赘述,遍历下字符串数组找到第一个回文串返回即可。 1234567891011121314151617class Solution {public: bool check(string word) { int n = word.length(); for (int i=0, j=n-1; i<j; i++, j--) { if (word[i] != word[j]) return false; } return true; } string firstPalindrome(vector<string>& words) { for (auto word: words) { if (check(word)) return word; } return "&quo ...
《MySQL实战45讲》 学习笔记
准备好好学习下 MySQL 了,一直以来对其了解只限于粗浅的使用,买了个《MySQL实战45讲》系统了解下MySQL。也不会特别深入,在全局视野知道MySQL都有哪些东西就好了。 这个系列课程感觉还是有很多干货的,每篇下面的思考题,以及评论区的互动都有学习价值。 开篇词 | 这一次,让我们一起来搞懂MySQL 没啥好说的。 01 | 基础架构:一条SQL查询语句是如何执行的? SELECT 语句的执行过程。 MySQL 的框架有几个组件,各是什么作用? 连接器:负责跟客户端建立链接、获取权限、维持和管理链接 查询缓存:查询请求先访问缓存(key 是查询的语句, value 是查询的结果)。命中直接返回。不推荐使用缓存,表中有数据更新就会清除这个表的缓存数据。(MySQL 8.0 以后直接没有缓存了) 关闭缓存: query_cache_type设置成DEMAND 分析器:对 SQL 语句做解析,判断SQL是否正确 优化器:决定使用哪个索引,多表关联(join)的时候,决定各个表的连接顺序 执行期:执行语句,先判断用户有无查询权限,使用表定义的存储引擎执行。 ...
LeetCode 第256场周赛
5854. 学生分数的最小差值 排序之后 遍历一遍每个大小为k的区间, 然后计算下就好 12345678910111213class Solution {public: int minimumDifference(vector<int>& nums, int k) { sort(nums.begin(), nums.end()); int ans = nums[nums.size()-1] - nums[0]; for(int i=k-1; i<nums.size(); i++) { ans = min(ans, nums[i]-nums[i-k+1]); } return ans; }}; 5855. 找出数组中的第 K 大整数 还是排序, 注意字符串比较和整数不同,需要补上前导0. 最后别忘了把前导0去掉。 123456789101112131415161718 ...
LeetCode 第253场周赛
5838. 检查字符串是否为数组前缀 md 开始读错题了。。 其实就是把words的前缀拼一起 看有没有等于s的就好 123456789101112class Solution {public: bool isPrefixString(string s, vector<string>& words) { string ss; for(auto w: words) { ss += w; if(ss == s) return true; } return false; }}; 5839. 移除石子使总数最小 这题很简单, 维护一个队头最大的优先队列。 每次取最大的元素xxx,也就是队头,减去⌊x2⌋\lfloor \frac{x}{2} \rfloor⌊2x⌋就好了。 12345678910111213141516171819202122class Solution {public: ...
LeetCode 第252场周赛
5830. 三除数 遍历下1->n, 统计下约数个数,最后看是否等于3就好了 123456789101112class Solution {public: bool isThree(int n) { int ans = 0; for(int i=1; i<=n; i++) { if (n%i == 0) ans ++; } return ans == 3; }}; 5831. 你可以工作的最大周数 取最大值, 看最大值能否被其他穿插开就好。 穿插不开就要舍弃不能连续的部分(值变成sum-mx+1)。 123456789101112131415161718192021class Solution {public: typedef long long int LL; long long numberOfWeeks(vector<int>& milestones) { ...
LeetCode 第246场周赛
这场是虚拟的,还是在床上躺着优哉游哉的打的,,成绩居然还可以? 这是巧合还是,,, 1903. 字符串中的最大奇数 找到最后一个是奇数的位置作为结尾即可 12345678910111213func largestOddNumber(num string) string { ls := len(num) end := -1 for i:=ls-1; i>=0; i-- { if (int(num[i]) - int('0'))&1 == 1 { end = i break } } return num[:end+1]} 1904. 你完成的完整对局数 简单算下就好, 都转成分钟,startTime向上取整,finishTime向下取整。 然后算差即可 注意两个点: 跨天的情况 取整后finishTime小于startTime的情况 123456789101112131415161718 ...