LeetCode题解
由于博客更新不及时,现全都放在GiuHub 134. 加油站 题解:https://leetcode-cn.com/u/mctw/ 有一个环形路上有n个站点; 每个站点都有一个好人或一个坏人; 好人会给你钱,坏人会收你一定的过路费,如果你带的钱不够付过路费,坏人会跳起来把你砍死; 问:从哪个站点出发,能绕一圈活着回到出发点? 首先考虑一种情况:如果全部好人给你 的钱加起来 小于 坏人收的过路费之和,那么总有一次你的钱不够付过路费,你的结局注定会被砍死。 假如你随机选一点 start 出发,那么你肯定会选一个有好人的站点开始,因为开始的时候你没有钱,遇到坏人只能被砍死; 现在你在start出发,走到了某个站点end,被end站点的坏人砍死了,说明你在 [start, end) 存的钱不够付 end点坏人的过路费,因为start站点是个好人,所以在 (start, end) 里任何一点出发,你存的钱会比现在还少,还是会被end站点的坏人砍死; 于是你重新读档,聪明的选择从 end+1点出发,继续你悲壮的征程; 终于有一天,你发现自己走到了尽头(下标是n-1)的站点而没有被砍死; 此时你犹豫 ...
Linux从入门到入土
Linux从入门到入土 前言:水平十分有限,仅仅是个人总结linux的入门知识,参考资料众多无法一一考证出处,如有侵权请联系删除! 并不能保证内容全部正确,请读者仔细甄别,如有错误欢迎批评指正。 一、绪论 1 什么是linux Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。 今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级电脑,并且在服务器领域确定了地位。开放源代码的Linux可以让知识延续下去,新兴的软件公司可以从开放源代码上快速、低价的创建专业能力,丰富市场的竞争,防止独霸软件巨兽的存在。个人使用很少有著作权问 ...
关于SSH免密登录不生效踩坑
问题描述 在部署本地博客到服务器时,按照步骤首先创建密钥,然后把公钥粘贴到到服务器文件中vim .ssh/authorized_keys,按理来说已经配置成功了。事实上来说也应该这样,但是!早晚有一天会发现事情不是这么简单,明明已经配置好了公钥,却由于各种原因会导致我运行hexo g -d还是需要密码登录。 踩坑历程 由于我不止一个远程仓库,所以我本地保存了多对密钥,最开始我以为问题出在密钥混淆。于是我按照这篇博客的方法,配置了config文件,却发现还是不行。于是我把重心放到日志文件上,想通过日志看出一些端倪。 1ssh -vvv 用户名@服务器ip -vvv选项可进入ssh调试模式,v越多调试信息越详细,将日志复制到编辑器中查看,截取如下: 12345678910debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,passworddebug1: Trying private key: /c/Users/hiltay/.ssh/id_ed25519_skdebug3: n ...
hexo本地博客部署到云服务器
hexo本地博客部署到云服务器 1 准备工作 在开始部署之前,你需要做如下准备: 本地搭建完成的博客 一台windows/mac电脑(如果你的电脑是linux应该不用看本篇教程吧) 一台云服务器(理论上来说任何服务商都可以,本教程以腾讯云为例) 本地电脑安装一个ssh连接工具(或者bash终端) 可能会多次失败也不怕重来的决心:) 2 安装配置git 1 安装依赖工具包 1yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel 2 安装编译工具 1yum install -y gcc perl-ExtUtils-MakeMaker package 3 删除旧版本git 1yum remove git -y 4 进入家目录 1cd 5 下载git到家目录 鉴于下载地址的时效性,附上官网地址,后续git更新请去官网下载安装包。 1wget https://www.kernel.org/pub/software/scm/git/git-2.34.0.tar.gz --no-chec ...
模板类vector和模板类Array
数组的替代品 模板类vector 模板类vector类似于string类,也是一种动态数组。你可以在运行阶段设置vector对象的长度,可在末尾附加新数据。还可在中间插入新数据。基本上,它是使用new创建动态数组的替代品。实际上,vector类确实使用new和delete来管理内存,但这种工作是自动完成的。 首先,要使用vector对象,必须包含头文件vector,其次,vector包含在名称空间std中,因此可使用using编译指令、using声明或std::vector,第三,模板使用不同的语法来指出它存储的数据类型。第四,vector类使用不同的语法来指定元素数。 123456#include <vector>using namespace std;vector<int> vi; // create a zero-size array of intint n;cin >> n;vector<double> vd(n); // create an array of n doubles 其中, vi 是一个vector<i ...
多个github帐号如何使用SSH不产生冲突
多个github帐号如何使用SSH不产生冲突 使用场景: 1231.我有两个github帐号A,B2.我只有一台电脑,但是A和B都需要连接3.最开始单独使用A的时候,创建了一对密钥;现在想连接B仓库,使用原来的密钥会提示"SSH已经被使用,无法添加" 问题分析: github不允许多个账号添加同一个公钥,因为如果A能用这个公钥连接,B也能用这个公钥连接,那安全登录就不起作用了。 解决方案: 我们可以在同一个电脑上生成多个SSH Key,操作步骤如下: 1、生成新的SSH Key git bash 12345$ ssh-keygen -t ed25519 -C "your_email@example.com" # 这里换成你的邮箱Generating public/private ed25519 key pair.Enter file in which to save the key (/c/Users/Administrator/.ssh/id_ed25519):# 注意,这里不要直接回车,否则会覆盖之前建的key。需要给他换一个名字。$ /c/Users/Administrator ...
git快速入门
Git 快速入门 1 Git概述 Git是一个分布式版本控制软件。 软件:需要安装在电脑上使用的工具 版本控制:开发过程中需要保存修改历史,方便更改历史记录等 分布式:是版本控制的一种方式 后面两个概念不太好理解,我们分别来介绍。 2 版本控制 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单说就是用于管理多人协同开发项目的技术。 没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。 2.1 常见的版本控制器 主流的版本控制器有如下这些: Git SVN(Subversion) CVS(Concurrent Versions System) VSS(Micorosoft Visual SourceSafe) TFS(Team Foundation Server) Visual Studio Online ...
Js词法分析
早年做的一些题 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168//例1function f1(age) { console.log(age); var age = 27; console.log(age); function ag ...
ubuntu20.04 使用root用户登录系统
转载自https://blog.csdn.net/COCO56/article/details/107628019 Ubuntu20.04安装完成之后,默认是没有root账户登录权限的,不过我们可以通过创建的普通用户获取管理员权限,然后修改配置和root账户的密码,最后实现登录root账户,具体操作步骤如下: 1 以普通用户登录系统,创建root用户的密码 在终端输入命令: 1sudo passwd root 先输入当前普通用户(如用户coco)的密码,用于提权。 然后再输入为root用户所设置的密码,输入两次,这样就完成设置root用户密码了(注意Linux系统下密码是没有回显的) 2 修改50-ubuntu.conf文件 在终端输入命令: 1sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 在文件末尾增加如下两行并保存: 12greeter-show-manual-login=true #手工输入登陆系统的用户名和密码allow-guest=false #不允许guest登录(可选) 3 修改gdm-aut ...
hexo-butterfly魔改记录大全
使用hexo-butterfly框架搭建个人博客 这里记录一下我自己搭建(魔改/照搬他人)个人博客的步骤,日后查找起来也方便。 留言板信封 出自https://akilar.top/posts/e2d3c450/ 这里直接npm安装配置拿来用了。这里转载一下安装方法: 博客根目录执行 1npm install hexo-butterfly-envelope --save 在站点配置文件或者主题配置文件添加配置项(对,两者任一均可。但不要都写) 12345678910111213141516# envelope_comment# see https://akilar.top/posts/58900a8/envelope_comment: enable: true #开关 cover: https://ae01.alicdn.com/kf/U5bb04af32be544c4b41206d9a42fcacfd.jpg #信笺封面图 message: #信笺内容,支持多行 - 有什么想问的? - 有什么想说的? - 有什么想吐槽的? - 哪怕是有什么想吃的,都可 ...