多ssh配置

在用户根目录下创建.ssh文件夹,文件夹里包含的文件如下,需要什么名字就改成什么名字。config文件是新建的。
image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# github email address
Host github
HostName github.com
User git
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

# vps git user
Host vps-git
HostName xxx.xxx.xxx.xxx # vps ip
User git
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/git_id_rsa

# vps root user
Host vps-root
HostName xxx.xxx.xxx.xxx # vps ip
User root
Port 22
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

ssh-agent 配置 Git bash 开启时自动化

多ssh管理时,private key 默认名称不为id_rsa。所有每次打开git bash需要重复执行ssh-agent,ssh-add,然后再ssh,比较麻烦,因此我们通过脚本实现自动化。

参考:https://developer.aliyun.com/article/6923
参见:https://help.github.com/articles/working-with-ssh-key-passphrases/#auto-launching-ssh-agent-on-msysgit
在C盘用户根目录创建.profile文件(不是文件夹),写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
env=~/.ssh/agent.env
agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }
agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }
agent_load_env
# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2=agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)
if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add ~/.ssh/github_id_rsa
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add ~/.ssh/git_id_rsa
fi
unset env

这道题最初没有想出来,看了题解恍然大悟。右边界升序排列是问题的关键。

题目

原题链接:
https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/

代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution:
def findMinArrowShots(self, points: List[List[int]]) -> int:
if not points:
return 0

# 右边界升序排列
points.sort(key=lambda balloon: balloon[1])
# 初始化最小右边界
pos = points[0][1]
ans = 1
for balloon in points:
# 遍历的左边界大于最小右边界时,射出一箭,更新最小右边界值
if balloon[0] > pos:
pos = balloon[1]
ans += 1

return ans

这道题真的把我绕进去好久,提交也一直报错,找不出原因orz,一行一行看代码也没看出哪里有问题。栽倒了小细节上。

大概思路是用递归排序,在排序的过程中,可以更新(下标对应的)元素后面有多少个小于自己的数。
用一个新数组[0,1,2,3,...]记录原数组下标。所以,递归排序改变元素位置时,下标也对应移动,以此作为记录答案的依据。

阅读全文 »

前几天写了个题解,今天打算上传博客,居然出错了,找了一圈错误原因,最后发现是yaml语言规范问题。就缺少一个空格,折腾了半天,下次要好好看报错内容。

阅读全文 »