nvm安装nodejs
nvm下载
nvm的GitHub下载地址
进入后下载
nvm安装
下载后双击exe文件进行安装,同意后点击next
设置安装目录
设置nodejs目录,最好不要带空格
点击install安装
点击Finish安装完成
nvm添加淘宝镜像
打开nvm安装目录下的settings.txt文件,添加淘宝镜像地址,红框内为新增的
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
nvm设置环境变量
此电脑右键点击属性
点击高级系统设置
点击环境变量
确认环境变量中有NVM_HOME和NVM_SYMLINK
确认
管理员身份运行cmd,执行查看的命令确认安装成功
nvm -v
node安装
执行命令列出有效可下载的node版本
nvm list available
执行安装命令安装指定版本的node
nvm install &l ...
deepin下安装jdk
1、jdk 下载
官网下载地址如下:
注意区分是哪个版本的
2、安装deb包
终端进入到deb文件所在目录,执行安装命令:
sudo dpkg -i jdk-11.0.15.1_linux-x64_bin.deb
3、配置环境变量
终端执行命令:
sudo vi /etc/profile
然后输入密码,在文件的最后加上下面的内容
#configuration java development enviroument
export JAVA_HOME=/usr/lib/jvm/jdk-11
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
4、使环境变量生效
执行命令:
source /etc/profile
5、检查是否成功
执行命令:
java -version
deepin下安装git
个人建议直接终端安装,下面的安装也是终端命令行安装的
1、安装git
执行安装命令:
sudo apt-get install git
2、确认git安装成功
执行查看git版本的命令,以此确认安装成功
git --version
3、配置git全局用户名和邮箱
配置全局用户名:
git config --global user.name "用户名"
配置全局邮箱:
git config --global user.email "邮箱"
4、确认配置结果
查看配置信息确认
git config --list
docker构建自定义镜像
1、编写Dockerfile
Dockerfile
FROM nginx
RUN apt update && apt install -y vim
2、构建镜像
执行命令:
docker build -t vim-nginx:1 .
注:要在Dockerfile所在目录下执行
这步时间较长,多等等,出现下面红框表示安装成功
完成后,执行命令确认镜像生成:
docker images
3、测试镜像
启动容器:
docker run -d --name new-nginx vim-nginx:1
docker ps -a
下面红框内是执行过程,中间的部分我命令敲错了,忽略掉
进入容器使用vim命令:
docker exec -it new-nginx bash
vim 123.txt
exit
停止容器:
docker stop new-nginx
docker ps -a
删除容器:
docker rm new-nginx
docker ps -a
4、docker登录
执行命令:
docker login
然后输入用户名和密码
注:用户名不是登录的邮箱 ...
通过Kubeadm方式安装K8S
前言
根据前几次的经验,这一次,运用脚本的形式安装,可以节约大部分的步骤,把一些前置的配置什么的写到shell脚本里面,随着vagrant up启动命令一起安装
集群环境:
IP
内存
CPU核数
master
172.17.8.51
4G
2
node
172.17.8.52
4G
1
node
172.17.8.53
4G
1
1、编写Vagrantfile文件
Vagrantfile内容:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# on win10, you need `vagrant plugin install vagrant-vbguest --plugin-version 0.21` and change synced_folder.type="virtualbox"
# reference `https://www.dissmeyer.com/2020/02/11/issue ...
一条命令运行rancher
1、rancher安装
控制台中rke用户下执行docker命令:
docker run --name=rancher -d --privileged --restart=unless-stopped -p 30040:80 -p 30050:443 rancher/rancher:latest
2、检查是否正常启动
可通过下面两个命令查看:
docker ps | grep rancher ## 查看正在运行中的docker容器
3、浏览器访问
输入https://IP:PORT
点击高级,然后点击继续前往
4、密码
根据提示,输入并修改密码
浏览器输入密码后,选择红框的,并在下方输入自己想要设置的密码
进入后里面有一个默认的k3s
5、加入其他存在的集群
点击Import Existing
选择Generic
集群名字随意输入,只要你能记住
根据红框的操作执行命令注册进来
执行命令
kubectl apply -f https://172.17.8.51:30050/v3/ ...
力扣675. 为高尔夫比赛砍树
2022年05月24日 力扣每日一题
675. 为高尔夫比赛砍树
题目
你被请来给一个要举办高尔夫比赛的树林砍树。树林由一个 m x n 的矩阵表示, 在这个矩阵中:
0 表示障碍,无法触碰
1 表示地面,可以行走
比 1 大的数 表示有树的单元格,可以行走,数值表示树的高度
每一步,你都可以向上、下、左、右四个方向之一移动一个单位,如果你站的地方有一棵树,那么你可以决定是否要砍倒它。
你需要按照树的高度从低向高砍掉所有的树,每砍过一颗树,该单元格的值变为 1(即变为地面)。
你将从 (0, 0) 点开始工作,返回你砍完所有树需要走的最小步数。 如果你无法砍完所有的树,返回 -1 。
可以保证的是,没有两棵树的高度是相同的,并且你至少需要砍倒一棵树。
示例 1:
输入:forest = [[1,2,3],[0,0,4],[7,6,5]]
输出:6
解释:沿着上面的路径,你可以用 6 步,按从最矮到最高的顺序砍掉这些树。
示例 2:
输入:forest = [[1,2,3],[0,0,0],[7,6,5]] ...
力扣周赛293题解
第一题
力扣原题链接:
2273. 移除字母异位词后的结果数组
单个题解:
力扣2273. 移除字母异位词后的结果数组
题目:
给你一个下标从 0 开始的字符串 words ,其中 words[i] 由小写英文字符组成。
在一步操作中,需要选出任一下标 i ,从 words 中 删除 words[i] 。其中下标 i 需要同时满足下述两个条件:
0 < i < words.length
words[i - 1] 和 words[i] 是 字母异位词 。
只要可以选出满足条件的下标,就一直执行这个操作。
在执行所有操作后,返回 words 。可以证明,按任意顺序为每步操作选择下标都会得到相同的结果。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。例如,"dacb" 是 "abdc" 的一个字母异位词。
示例 1:
输入:words = ["abba","baba","bbaa","cd","cd"]
输出:["abba","cd"]
解释:
获取结果数组的方法之一是执行下述步骤 ...
力扣2276. 统计区间中的整数数目
力扣周赛293–第四题
2276. 统计区间中的整数数目
题目
给你区间的 空 集,请你设计并实现满足要求的数据结构:
新增:添加一个区间到这个区间集合中。
统计:计算出现在 至少一个 区间中的整数个数。
实现 CountIntervals 类:
CountIntervals() 使用区间的空集初始化对象
void add(int left, int right) 添加区间 [left, right] 到区间集合之中。
int count() 返回出现在 至少一个 区间中的整数个数。
注意:区间 [left, right] 表示满足 left <= x <= right 的所有整数 x 。
示例 1:
输入
["CountIntervals", "add", "add", "count", "add", "count"]
[[], [2, 3], [7, 10], [], [5, 8], []]
输出
[null, null, null, 6, null, 8]
解释
CountIntervals countIntervals = new ...
力扣2275. 按位与结果大于零的最长组合
力扣周赛293–第三题
2275. 按位与结果大于零的最长组合
题目
对数组 nums 执行 按位与 相当于对数组 nums 中的所有整数执行 按位与 。
例如,对 nums = [1, 5, 3] 来说,按位与等于 1 & 5 & 3 = 1 。
同样,对 nums = [7] 而言,按位与等于 7 。
给你一个正整数数组 candidates 。计算 candidates 中的数字每种组合下 按位与 的结果。 candidates 中的每个数字在每种组合中只能使用 一次 。
返回按位与结果大于 0 的 最长 组合的长度。
示例 1:
输入:candidates = [16,17,71,62,12,24,14]
输出:4
解释:组合 [16,17,62,24] 的按位与结果是 16 & 17 & 62 & 24 = 16 > 0 。
组合长度是 4 。
可以证明不存在按位与结果大于 0 且长度大于 4 的组合。
注意,符合长度最大的组合可能不止一种。
例如,组合 [62,12,24,14] 的按 ...
力扣2274. 不含特殊楼层的最大连续楼层数
力扣周赛293–第二题
2274. 不含特殊楼层的最大连续楼层数
题目
Alice 管理着一家公司,并租用大楼的部分楼层作为办公空间。Alice 决定将一些楼层作为 特殊楼层 ,仅用于放松。
给你两个整数 bottom 和 top ,表示 Alice 租用了从 bottom 到 top(含 bottom 和 top 在内)的所有楼层。另给你一个整数数组 special ,其中 special[i] 表示 Alice 指定用于放松的特殊楼层。
返回不含特殊楼层的 最大 连续楼层数。
示例 1:
输入:bottom = 2, top = 9, special = [4,6]
输出:3
解释:下面列出的是不含特殊楼层的连续楼层范围:
- (2, 3) ,楼层数为 2 。
- (5, 5) ,楼层数为 1 。
- (7, 9) ,楼层数为 3 。
因此,返回最大连续楼层数 3 。
示例 2:
输入:bottom = 6, top = 8, special = [7,6,8]
输出:0
解释:每层楼都被规划为特殊楼层,所以返回 0 。
提示
1 ...
力扣2273. 移除字母异位词后的结果数组
力扣周赛293–第一题
2273. 移除字母异位词后的结果数组
题目
给你一个下标从 0 开始的字符串 words ,其中 words[i] 由小写英文字符组成。
在一步操作中,需要选出任一下标 i ,从 words 中 删除 words[i] 。其中下标 i 需要同时满足下述两个条件:
0 < i < words.length
words[i - 1] 和 words[i] 是 字母异位词 。
只要可以选出满足条件的下标,就一直执行这个操作。
在执行所有操作后,返回 words 。可以证明,按任意顺序为每步操作选择下标都会得到相同的结果。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。例如,"dacb" 是 "abdc" 的一个字母异位词。
示例 1:
输入:words = ["abba","baba","bbaa","cd","cd"]
输出:["abba","cd"]
解释:
获取结果数组的方法之一是执行下述步骤:
- 由于 words[2] = "bbaa" 和 words[1] = " ...
力扣周赛292题解
第一题
力扣原题链接:
2264. 字符串中最大的 3 位相同数字
单个题解:
力扣2264. 字符串中最大的 3 位相同数字
题解:
这题是要找最大的3个相同数并且3个数是相连的,因为数字的话只有0~9这10个数字,找最大的,那我就从999开始,然后依次888、777。。。000,只要字符串中存在,那就是它了。
java代码:
public String largestGoodInteger(String num) {
String str;
for (int i = 9; i >= 0; i--) {
str = "" + i + i + i;
if (num.contains(str)) {
return str;
}
}
return "";
}
第二题
力扣原题链接:
6057. 统计值等于子树平均值的节点数
单个题解:
力扣6057. 统 ...
力扣2267. 检查是否有合法括号字符串路径
力扣周赛292–第四题
2267. 检查是否有合法括号字符串路径
题目
一个括号字符串是一个 非空 且只包含 '(' 和 ')' 的字符串。如果下面 任意 条件为 真 ,那么这个括号字符串就是 合法的 。
字符串是 () 。
字符串可以表示为 AB(A 连接 B),A 和 B 都是合法括号序列。
字符串可以表示为 (A) ,其中 A 是合法括号序列。
给你一个 m x n 的括号网格图矩阵 grid 。网格图中一个 合法括号路径 是满足以下所有条件的一条路径:
路径开始于左上角格子 (0, 0) 。
路径结束于右下角格子 (m - 1, n - 1) 。
路径每次只会向 下 或者向 右 移动。
路径经过的格子组成的括号字符串是 合法 的。
如果网格图中存在一条 合法括号路径 ,请返回 true ,否则返回 false 。
示例 1:
输入:grid = [["(","(","("],[")","(",")"],["(","(",")"],["(","(",")"]]
输出:true ...
力扣2266. 统计打字方案数
力扣周赛292–第三题
2266. 统计打字方案数
题目
Alice 在给 Bob 用手机打字。数字到字母的 对应 如下图所示。
为了 打出 一个字母,Alice 需要 按 对应字母 i 次,i 是该字母在这个按键上所处的位置。
比方说,为了按出字母 's' ,Alice 需要按 '7' 四次。类似的, Alice 需要按 '5' 两次得到字母 'k' 。
注意,数字 '0' 和 '1' 不映射到任何字母,所以 Alice 不 使用它们。
但是,由于传输的错误,Bob 没有收到 Alice 打字的字母信息,反而收到了 按键的字符串信息 。
比方说,Alice 发出的信息为 "bob" ,Bob 将收到字符串 "2266622" 。
给你一个字符串 pressedKeys ,表示 Bob 收到的字符串,请你返回 Alice 总共可能发出多少种文字信息 。
由于答案可能很大,将它对 109 + 7 取余 后返回。
示例 1:
输入:pressedKeys = "22233"
输出:8
解释:
Alice 可能发出的文字信息包 ...








