200. 岛屿数量
给你一个由 '1'
(陆地)和 '0'
(水)组成的的二维网格,请你计算网格中岛屿的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。
此外,你可以假设该网格的四条边均被水包围。
示例 1:
输入:grid = [ |
示例 2:
输入:grid = [ |
提示:
m == grid.length
n == grid[i].length
1 <= m, n <= 300
grid[i][j]
的值为'0'
或'1'
给你一个由 '1'
(陆地)和 '0'
(水)组成的的二维网格,请你计算网格中岛屿的数量。
岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。
此外,你可以假设该网格的四条边均被水包围。
示例 1:
输入:grid = [ |
示例 2:
输入:grid = [ |
提示:
m == grid.length
n == grid[i].length
1 <= m, n <= 300
grid[i][j]
的值为 '0'
或 '1'
使用 Hexo
进行博客写作非常方便:
hexo new post "TITLE"
新建文章hexo g
生成静态页面hexo d
部署页面美中不足的是,一旦切换写作环境或者数据丢失,原始的文章及相关配置难以同步备份。
对于需要备份的文档等小体积文件,较为通用的做法是使用 Git
进行版本控制,并托管项目到免费开放平台,如 Github, Gitee, Gitlab 等。
懒,是第一生产力!
那么,对于博客写作来说,在提交新改动后,自动化 发布文章是更便捷的做法。
Github Actions 是 Github 推出的持续集成/持续交付或部署 (CI/CD)工具。它能够与 Github 上的项目无缝结合,十分好用。
GitHub Actions enables you to create custom software development life cycle (SDLC) workflows directly in your GitHub repository.
GitHub Actions 可以让你直接在 GitHub 仓库中创建自定义的软件开发生命周期 (SDLC) 工作流程。
Github Actions 有很丰富的玩法,如:自动化构建基于项目的 Docker 镜像并发布,自动编译最新的 LEDE 固件等。
本篇仅介绍使用 Github Actions 自动发布博客文章。
经过许多折腾,终于找到了适合自己的 Python 开发环境管理。
本文仅作记录用,不定期更新。
注:笔者所使用的平台为 Windows 10 + WSL (Ubuntu 18.04)
Python 的版本迭代较为迅速,截止至本文发布日期 (2020-06-14),最新的版本号为:3.9.0b3 。
由于不同项目的需求不同,管理开发环境的 Python 版本势在必行。
pyenv
是一个优秀的 Python 解释器版本管理工具:
pyenv lets you easily switch between multiple versions of Python.
pyenv 可以让你轻松地在多个 Python 版本间来回切换。
It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
它简单,不显眼,且遵循 UNIX 传统 -- 单一目标的工具只专注于做好该事。
# https://github.com/pyenv/pyenv#installation |
运行 pyenv install --list
,若 pyenv
安装成功,终端会输出可安装的 Python 解释器版本。
因为刚结束学业,加之暂时赋 dai 闲 ye 在家, 萌生出想要记录一些平时写码或者玩工具的个人经验,于是就有了本文的诞生。
本文非教程向, 仅用来作为笔者的备忘录。
注:此处笔者所用的环境是 Windows 10 + WSL (Ubuntu 18.04)
nvm 安装 (可选)
Node Version Manager (nvm) 是 Node.js
版本管理工具,类似于 Python
的 pyenv
。
# https://github.com/nvm-sh/nvm#installing-and-updating |
node 安装
# 有安装 nvm |
安装 cnpm 由于 npm
的官方镜像在国内的连接性十分堪忧,所以使用淘宝的 cnpm
代替
# https://developer.aliyun.com/mirror/NPM |