0%

早上的周赛又是只做了两题,今天一天都在看题解,还好基本都弄懂了。

话说,都已经快考试了啊,我还没复习,还刷题,糟糕。不过刷题能麻木我,减轻一丝痛苦,复习却不能。

明天开始晚上还是复习好了。

LeetCode第165场周赛

1275. 找出井字棋的获胜者

传送门:1275. 找出井字棋的获胜者

题目描述

AB 在一个 3 x 3 的网格上玩井字棋。

井字棋游戏的规则如下:

  • 玩家轮流将棋子放在空方格 (" ") 上。
  • 第一个玩家 A 总是用 "X" 作为棋子,而第二个玩家 B 总是用 "O" 作为棋子。
  • "X" 和 "O" 只能放在空方格中,而不能放在已经被占用的方格上。
  • 只要有 3 个相同的(非空)棋子排成一条直线(行、列、对角线)时,游戏结束。
  • 如果所有方块都放满棋子(不为空),游戏也会结束。
  • 游戏结束后,棋子无法再进行任何移动。

给你一个数组 moves,其中每个元素是大小为 2 的另一个数组(元素分别对应网格的行和列),它按照 AB 的行动顺序(先 AB)记录了两人各自的棋子位置。

如果游戏存在获胜者(AB),就返回该游戏的获胜者;如果游戏以平局结束,则返回 "Draw";如果仍会有行动(游戏未结束),则返回 "Pending"。

你可以假设 moves有效(遵循井字棋规则),网格最初是空的,A 将先行动。

阅读全文 »

老实说,抑郁真的影响很大的,头脑越来越不好了。昨晚突然哭了起来,我控制不住自己啊,好痛苦。八点持续到九点多,洗个澡才勉强恢复了一点,最后只做出了两题,但今天做了剩下两题,发现也不难,哈,一看就会,一做就废。

LeetCode第14场双周赛

5112. 十六进制魔术数字

传送门:5112. 十六进制魔术数字

题目描述

你有一个十进制数字,请按照此规则将它变成「十六进制魔术数字」:首先将它变成字母大写的十六进制字符串,然后将所有的数字 0 变成字母 O ,将数字 1 变成字母 I

如果一个数字在转换后只包含 {"A", "B", "C", "D", "E", "F", "I", "O"} ,那么我们就认为这个转换是有效的。

给你一个字符串 num ,它表示一个十进制数 N,如果它的十六进制魔术数字转换是有效的,请返回转换后的结果,否则返回 "ERROR"

阅读全文 »

这周的周赛真的是目前为止见过最简单的一次了,前三题都没算法,直接暴力,第四题可以记忆化和动态规划。

不过菜如我还是只做了前两题,第三题一开始以为是前缀树,就没做了,去吃饭了。

LeetCode第164场周赛

1266. 访问所有点的最小时间

传送门:1266. 访问所有点的最小时间

题目描述

平面上有 n 个点,点的位置用整数坐标表示 points[i] = [xi, yi]。请你计算访问所有这些点需要的最小时间(以秒为单位)。

你可以按照下面的规则在平面上移动:

  • 每一秒沿水平或者竖直方向移动一个单位长度,或者跨过对角线(可以看作在一秒内向水平和竖直方向各移动一个单位长度)。
  • 必须按照数组中出现的顺序来访问这些点。
阅读全文 »

传送门:235. 二叉搜索树的最近公共祖先

题目描述

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]

阅读全文 »

传送门:1256. 加密数字

题目描述

给你一个非负整数 num ,返回它的「加密字符串」。

加密的过程是把一个整数用某个未知函数进行转化,你需要从下表推测出该转化函数:

阅读全文 »

安装zsh

  • 查看系统当前使用的shell

    1
    echo $SHELL
  • 查看系统是否安装了zsh

    1
    cat /etc/shells

    若已经有/bin/zsh,跳至安装oh-my-zsh

  • 安装zsh

    CentOS:

    1
    yum -y install zsh

    ubuntu(wsl):

    1
    sudo apt-get install -y zsh

安装oh-my-zsh

  • 先使用查看版本命令检查是否安装了git,未安装则先安装git

    1
    git --version
  • 安装git

    CentOS:

    1
    yum -y install git

    ubuntu(wsl):

    1
    sudo apt-get install -y git
  • 安装oh-my-zsh

    1. 通过curl安装

      1
      sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    2. 通过wget安装

      1
      sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    3. 手动安装

      • clone仓库

        1
        git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh
      • 复制配置

        1
        cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
  • 切换shell为zsh

    1
    chsh -s /bin/zsh
  • 重启终端,再次进入即自动使用oh-my-zsh

更改主题

  • 查看主题

    1
    ls ~/.oh-my-zsh/themes
  • 修改主题

    1
    vim ~/.zshrc

    修改ZSH_THEME="robbyrussell"ZSH_THEME="ys"

    也可以修改为random,随机主题,每次进入终端都是随机的主题。

    修改后重启终端生效。

插件

打开~/.zshrc文件,找到plugins=(git),这里是启用了的插件,用到的插件加入到这里即可。

记住修改后使用下面命令使配置生效。

1
source ~/.zshrc

git

默认已开启git,可以使用git命令的缩写。

查看所有git命令缩写:

1
cat ~/.oh-my-zsh/plugins/git/git.plugin.zsh

命令缩写实则是由alias完成的。

z

路径快速跳转插件,内置安装,自己加入开启即可。

目录间跳转不需要输入全路径,只需要输入部分即可。

保存的记录在~/.z中,删除记录使用如下命令:

1
z -x 路径

还有一个叫autojump的插件,功能类似,需要自己下载。

zsh-syntax-highlighting

高亮命令插件,绿色正确命令,红色错误命令,下划线标识正确路径。

clone下来,修改~/.zshrc文件添加插件,source一下即可。

1
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

其它

记得修改~/.zshrc文件后,source ~/.zshrc使配置生效。

history

~/.zshrc中找到HIST_STAMPS,打开注释。

即可在history命令查看输入命令历史时显示时间。

alias

alias命令用来设置指令的别名,直接输入alias即列出所有的别名,git的指令缩写也在里面。

起别名:

1
alias c="clear"

移除别名:

1
unalias c

以上两个命令都是临时的,关闭终端后即失效。

要永久生效可在~/.zshrc文件最后追加即可。如:

1
echo 'alias c="clear"' >> ~/.zshrc

移除删掉即可。

查找某个命令的缩写:

1
alias | grep commit

Description

1
2
3
4
5
6
问题描述: 
给定n位正整数a,去掉其中任意k个数字后,剩下的数字按原次序排列成一个新的正整数。

算法设计:
给定n (1<=n<=200)位的正整数a和k,此时,k小于n。
试着设计一个算法,找出删去k个数,剩下数字组成的新数最小的删数方案。
阅读全文 »