Contents

ARST打卡第274周

lc3143_正方形中的最多点数 【TED演讲】不要在意失败 TiKV 源码解析系列文章(二)raft-rs proposal 示例情景分析 试玩osx-on-windows

Algorithm

lc3143_正方形中的最多点数

思路:

看示例二可以知道中心点必定在 (0, 0), 那么在正方形内就可以转换成 abs(x)+abs(y) 的距离问题。

也就是最小距离内不能有相同标签的点。

所以直接建立座标对字符的映射,然后排序座标距离,直接遍历直到遇到相同的点。

看了一眼提示,发现自己的思路有点问题,不是 abs(x)+abs(y) 而是 max(abs(x), abs(y))

自己 O(nlogn) 的排序方法还是比较容易实现的,学习一下题解的 O(n) 方法:

利用类似计数排序的逻辑,先给所有的字符计算出每个字符最小距离数组所有字符的最小次小距离, 这样最后选出所有字符的最小次小距离内的字符数即可。

学一下 RUST 写法:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
impl Solution {
    pub fn max_points_inside_square(points: Vec<Vec<i32>>, s: String) -> i32 {
        let mut min1 = vec![1000000001; 26];
        let mut min2 = 1000000001;
        let n = s.len();
        for (i, ch) in s.chars().enumerate() {
            let x = points[i][0];
            let y = points[i][1];
            let j = (ch as u8 - b'a') as usize;
            let d = x.abs().max(y.abs());
            if d < min1[j] {
                min2 = min2.min(min1[j]);
                min1[j] = d;
            } else if d < min2 {
                min2 = d;
            }
        }
        let mut res = 0;
        for d in min1 {
            if d < min2 {
                res += 1;
            }
        }
        res
    }
}
// 链接:https://leetcode.cn/problems/maximum-points-inside-the-square/solutions/2862469/zheng-fang-xing-zhong-de-zui-duo-dian-sh-qd5w/

Review

【TED演讲】不要在意失败

不要把失败当成阻碍前进的障碍,也不要忽视失败,而是小心地失败,在失败中总结成长分享,让失败变得也有价值,从而造福后来人,也将造福整个社会。

这里就类似于开源精神,不断互相站在巨人的肩膀上,不断最佳实践,相互成就。

Tips

TiKV 源码解析系列文章(二)raft-rs proposal 示例情景分析

Share

试玩osx-on-windows

先安装依赖

osx-on-windows

安装

1
2
3
4
5
6
7
8
docker run -it \
    --device /dev/kvm \
    -p 50922:10022 \
    -v /mnt/wslg/.X11-unix:/tmp/.X11-unix \
    -e "DISPLAY=${DISPLAY:-:0.0}" \
    sickcodes/docker-osx:big-sur

# docker build -t docker-osx --build-arg SHORTNAME=big-sur .

NOTICE: 注意安装界面要先进行磁盘格式化,看到3个盘,把那个虚拟的278GB的盘 erase ,然后重新命名格式化之后,再退出 reinstall 安装系统。

总结体验

优点:

  • 安装过程比较丝滑,docker安装比一般的虚拟机安装linux都要快许多
  • 确实是一个完整的 macos

缺点:

  • 键鼠在安装过程中较卡,安装完后使用起来不卡
  • 但是ui动画都巨卡无比,所以还是用不了,可能需要自己加显卡配置,否则默认显存太小,非常难使用