Leetcode Weekly Contest 176 题解
emmmm,我的拖延症没救了,顺便加上这周沉迷 Kotlin ,这篇本应该周一就写完的题解拖到现在,= =然而这周双周赛,,我又得写两篇题解了。。。 1351. Count Negative Numbers in a Sorted Matrix题面: Given a m * n matrix grid which is sorted in non-increasing order both row-wise and column-wise.Return the number of negative numbers in grid. 示例: 123Input: grid = [[4,3,2,-1],[3,2,1,-1],[1,1,-1,-2],[-1,-1,-2,-3]]Output: 8Explanation: There are 8 negatives number in the...
Leetcode BiWeekly Contest 19 题解
例行 Leetcode 周赛,这周双周赛,两场赛打下来,有点酸爽,先写个 BiWeekly 19 Contest 的题解吧 1342. Number of Steps to Reduce a Number to Zer题面: Given a non-negative integer num, return the number of steps to reduce it to zero. If the current number is even, you have to divide it by 2, otherwise, you have to subtract 1 from it. 示例: 123456789Input: num = 14Output: 6Explanation: Step 1) 14 is even; divide by 2 and obtain 7. Step 2) 7 is odd; subtract 1 and obtain 6. Step 3) 6 is even; divide by 2 and obtain 3. ...
Leetcode Weekly Contest 174 题解
最近因为生病好久没刷题,今早开始打了一场 Leetcode 的周赛,来写个题解,今早状态还行,,BTW 以后每周都会打周赛,争取写题解 Leetcode 1341. The K Weakest Rows in a Matrix描述: Given a m * n matrix mat of ones (representing soldiers) and zeros (representing civilians), return the indexes of the k weakest rows in the matrix ordered from the weakest to the strongest.A row i is weaker than row j, if the number of soldiers in row i is less than the number of soldiers in row j, or they have the same number of soldiers but i is less than j. Soldiers are...
简单安利 Rime 输入法
唉,最近因为气胸大过年的住院,春节颓废了好久,今天开始回北京,干脆来安利一个输入法— Rime 碎碎念如同大多数人一样,我之前也是使用搜狗输入法作为自己的主力输入法,但是搜狗输入法的一些缺陷让我放弃了使用搜狗输入法 作为传统艺能,搜狗输入法隐私保护成迷,在 MacOS 上某几个版本的搜狗在寻求获取我的通讯录和日历读取权限 作为传统艺能,搜狗输入法的广告推送实在是一言难尽,特别是在 Windows 上,已经禁了一些组件,但是还是防不胜防 因为和港澳台和国外社区朋友的交流需要,我需要输入法能够比较好的支持繁体,而搜狗输入法的繁体支持也是一言难尽 搜狗输入法的定制能力也着实不满足我的需求。。 因此我在18年开始在寻求一种开源,可控,可定制,对简/繁输入都比较友好的输入法。经过寻找之后,Rime 输入法进入了我的视线,经过一年多的使用,我觉得这个真的是一款非常棒的输入法 Rime 是什么?Rime (又名 中州韻)是一款开源的跨平台的输入法引擎,完全开源,完全可定制,你甚至可以基于 Rime 的源码,来封装一套自己的输入法引擎。同时因为 Rime...
简单聊聊 SQL 中的 Prepared Statements
好久没写文章了,新年还是得写点技术水文来保证下状态,正好最近遇到一个比较有意思的问题,就来简单聊聊一下关于 MySQL 中 Prepared Statements 吧 开始gorm 是大家在使用 Go 开发时的比较常用的 ORM 了,最近在使用 gORM 的时候遇到一个很有意思的问题。首先我大概描述一下这个问题 在使用 gORM 的 Raw 方法进行 SQL 查询时,构造了如下类似的 SQL 1select * from demo where match(name) AGAINST('+?' IN BOOLEAN MODE) 在随后传入参数的时候,返回 Error : sql: expected 0 arguments, got 1。而其余的诸如如下的查询就正常执行 1select * from demo where name = ? 最开始我以为这是 gORM 中拼接 SQL 模块的问题,但是看了下代码后发现一个很有趣的逻辑。gORM 中并没有拼接 Raw SQL 的相关逻辑,它会直接调用 Golang 中的标准库 database/sql 来进行...
年轻人第一台 Mac,来自一个开发者的 Macbook Pro 2019 16寸简评
从工作开始,一直就想买个 Mac,但是一直没有买成,虽说有公司配发的 Mac(这也让我从 Macbook Pro 2015 13寸到 Macbook Pro 2017 15寸,到 Macbook Pro 2017 15寸,到 Macbook Pro 2018 13寸,到 Macbook Pro 2018 15寸用了个遍,23333),但是没有自己的 Mac始终是一个比较遗憾的事,所以这次新款 Mac 出来后,就瞬时公司员工优惠(官网95折)+12期免息分期入手了,现在我来从一个开发者的角度来给一个简单的评测吧 正文为什么会考虑 Mac写这个文章之前,我需要介绍下我买 Mac 的背景。目前我的主力机是来自蓝天的准系统,P775TM,配置是 i7 8700+32G+512G SSD+1070。工作系统是 Manjaro(一个 Linux 发型版)。在目前开发的时候觉得非常舒服,但是我也遇到了几个问题 太重了,有些时候临时有事需要出门带着并不方便 Linux...
写在一周年
说实话,突然体会到了老祖宗说的『光阴似箭,日月如梭』的感觉了,感觉告白还在昨天,但是转眼就一年了。所以来写篇文章纪念这短短却有很丰富的一年吧 起初说实话,我现在都没搞清楚是她撩的我,还是我撩的她,估计暂时也不会搞清楚了? 在去年的11月7号凌晨,当时聊着双十一,然后她突然说,“要是双十一能脱单就好了”,然后我直接没过大脑的来了一句...
我与 PyCon China 这两年
其实这篇文章最开始动笔是写于9月份,PyCon China 2019 上海场的工作结束后。后续因为还有北京,成都场的工作,所以拖到了现在。正好我自己的三年计划刚刚落下帷幕。下一个三年计划正在开展。我也来聊聊在这三年里面,让我花费精力最多,也是最为重要的部分组成之一吧。 PyCon China,嗯这三年的时间里,我有两年都在与这个熟悉而陌生的名字关联在了一起 我与 PyCon China 的结识说实话,之前 Laike9M 的一句话让我产生了共鸣 Kenneth Reitz 曾经说,他的一年是按 PyCon 计算的。尽管围绕他有很多争议,这句话依然让我有了奇妙的共鸣。对他来说,”PyCon”自然是指 PyCon US,而对我来说,则是 PyCon China 而我18/19年这两年的时间里,有很大一部分时间都在围绕着 PyCon China 要说最早结识 PyCon,应该能追溯到的 2016 年,当时初学 Python 的我,看到 David Beazley 在 PyCon US 2009 上分享的一个名为 A Curious Course on Coroutines...
Linux 上关于 inotify 的小笔记
最近还是无心写啥文章,说好的写几篇关于 Raft 的论文也因为一些事 delay 了。但是想了想还是准备写点什么,于是写个小的水文来记录下关于今天碰到的一个 Linux 内核参数的问题, 顺便做个笔记 开始我是一个不太喜欢 Mac 的人,所以我自己在家使用的开发环境是 Manjaro(这里打个广告,非常棒的发行版,堪称开箱即用,广告五毛一条)。然后代码工具就是 Jetbrains 的全家桶和 VSCode 搭配使用。 今天打开 Goland 的时候,发现 IDE 给了这样一个 Warning ,External file changes sync may be slow: The current inotify(7) watch limit is too low. 于是大家知道,我是个看着这些 warning 有强迫症的人,于是我就去查了查 简单聊聊我们平常经常会有需求,去监控一个文件或者一个目录下的变化,比如创建文件,删除文件等。我们常规的做法可能是一个直接暴力轮询的方式来做 但是这样的性能会极差。那么我们有没有什么手段来处理一下这个事么? 有的! Linux 提供了对应的...
随便聊聊 PEP570
最近沉迷与 MIT 6.824 这门分布式系统的课,无心写文章。不过看到 PEP570 被接受了,决定还是写篇水文随便聊聊 PEP 570 Python 的 argument在聊 PEP570 之前,我们先要来看看 Python 的 argument 变迁 早在 Python 1.0 或更早,Python 的 argument 系统就已经支持我们现在主要使用的两种参数形式了,一种是 positional 一种是 keyword,举几个例子 1234567891011def abc(a, b, c): passabc(1, 2, 3)abc(1, 2, c=3)abc(1, b=2, c=3)abc(*(1, 2, 3))abc(**{"a": 1, "b": 2, "c": 3}) 这是不是我们常见的集中使用方式? 在发展了很长一段时间后,虽然期间有一些提案对 Python 的 argument 系统做优化和增强,但是一直都被 Reject,直到 PEP3102 的出现 3102...