买金和数独

2023-02-28

缺失 1d

2023-02-27

为什么有的人一坐电动车就晕车 – 备胎说车的文章 – 知乎

https://zhuanlan.zhihu.com/p/82169428

一度以为是那个司机不行,把我开吐了,原来是电动车的动力方式导致的。

2023-02-26

the representation of the value “1” in binary would normally be “001” and “2” would be “010”. In Gray code, these values are represented as “001” and “011”. That way, incrementing a value from 1 to 2 requires only one bit to change, instead of two.

https://en.wikipedia.org/wiki/Gray_code

格雷码了解一下

继续阅读“买金和数独”

数独求解器

把需要求解的数独一一对照填入,就能快速求解,再也不用费劲心思苦苦冥想了,快来找几个题目验证一下程序吧。

点击这个按钮,嗖的一下,结果就出来了。

扩展阅读

解封了,解封了

2022-11-30

怎样理解“非暴力不合作”这句话? – 麻烦同学的回答 – 知乎

https://www.zhihu.com/question/20299344/answer/186126612

不合作运动(英语:Non-cooperation movement),印度文为Satyagraha,本义与真理有关,又译为非暴力不合作运动,1920—1922年和1930—1934年发生于英属印度全国范围。律师出身的圣雄甘地于1920年9月4日发起了不合作运动,这是世界历史上第一个全国性的非暴力反抗运动。

看文字还以为是得暴da我一顿,才能和你合作的求虐心态呢。

2022-11-29

我要做核酸

继续阅读“解封了,解封了”

舞蹈链 – JavaScript 实现

前言

如果想实现一个数独小游戏,可以先了解舞蹈链这个数据结构,还是很有意思的。我不准备再具体讲解 dance link 是什么,因为很难比其它文章写的更好,只提供一个 JavaScript 的实现在下面,如果你感兴趣的话,可以查阅,有问题可以留言讨论。

继续阅读“舞蹈链 – JavaScript 实现”

border-radius 的值超过宽高的计算公式

先来看一个现象,解释一下为何两者的圆角效果是一致的。

css 的代码如下:

.e1 {
  border-radius: 100% 100% 0 0 / 100% 0 0 0;
}

.e2 {
  border-radius: 50% 0 0 0 / 50% 0 0 0;
}

e2 好理解,水平和垂直的圆角都是 50px;但是 e1 怎么理解呢?这里就涉及到了当圆角半径超出盒宽高的计算公式了。

继续阅读“border-radius 的值超过宽高的计算公式”

我的 2022

又过了一年,例行公事般的写一篇总结。

工作

学习

在 2021 年,我做了 400 道力扣题目,截止文章写的时候,累计完成了 525 道题目,相比去年,做的题少了很多,提交数也少了很多(2021 是 1140,2022 是 428)。在 2022 年,我心底也有一个目标,就是让 medium 的题目完成的数量高于 easy 类型的,目前也没有实现,只能迁移到 2023 年了。

我也买了一些计算机基础课程,但是没有看完,太懒了。

今年还有一个长期坚持做的事情,就是听了 50 回蒋勋讲的红楼梦,虽然之前也断断续续的看过小说,但是毕竟是长篇巨作,很耗时。2023 年应该可以听完。你会发现《红楼梦》就是一场繁华青春的回忆,在追忆自己的黄金时代,而这种黄金时代,你我其实都有,每个人都能从中找到共鸣。

leetcode 515 题解

一般来说,不想怎么写题解,因为不能穷尽所有的解法。解这个题过程中,有些有意思的地方,顺便就记录一下。原题在这里,我直接写答案了。

bfs

简单的直觉,就是广度优先遍历。拿到每层的节点,保持在数组里,再求出最大的值。

var largestValues = function(root) {
    let arr = []
    if(!root) return arr
    let stack = [root]
    while(stack.length) {
        let temp = []
        let max = -Infinity
        while(stack.length) {
            let node = stack.pop()
            let v = node.val
            max = Math.max(v, max)
            node.left && temp.push(node.left)
            node.right && temp.push(node.right)
        }

        arr.push(max)

        stack = temp
    }
    
    return arr
};

提交后,速度挺慢的,怎么回事呢?先把节点放入,再拿出来,相当于把整个树遍历了 2 次。

继续阅读“leetcode 515 题解”