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搭建个人博客
Hexo搭建个人博客 1 介绍 Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 如果你希望自己的博客自定义程度更高,并且愿意折腾的话,Hexo是不二选择。 2 安装 如果已经安装,请跳过本节。 Hexo自带中文文档,有能力可以直接按照官方文档操作。 官方网站 GitHub 这里按照官方安装步骤,简单介绍一下: 2.1 安装node.js和git git下载 node.js下载 安装即可。不同平台安装方法请查阅各自的官方文档。 建议把它们添加到环境变量。 [可选项]cnpm 由于npm速度比较慢,可以使用淘宝npm镜像来代替下载。 123// 二选一即可npm install -g cnpm --registry=https://registry.npmmirror.comnpm install -g cnpm --registry=https://registry.npm.taobao.org 安装好之后,所有的npm命令可以使用cnpm代替。 2.2 安装Hexo 打开命令行输入 1 ...