算法-二分查找解析
只要坚持往正确的方向前进,终会找到答案
前言
阅读本文,你可以理解:二分查找算法原理,相关变种问法和一些场景下的衍生应用
经典二分查找算法
二分查找算法 最经典的场景是在一个 有序数组中,查找目标值所在的下标(若存在)
我们有长度为 nnn 的数组 a0,...,ai,...,aj,...,an−1a_0,...,a_i,...,a_j,...,a_{n-1}a0,...,ai,...,aj,...,an−1,并且对于任意一对下标 i<ji < ji<j ,我们有 ai≤aja_i \le a_jai≤aj
输入: a0,...,an−1a_0,...,a_{n-1}a0,...,an−1, targettargettarget
输出: pospospos (满足 apos=targeta_{pos} = targetapos=target (若存在多个返回任意一个),若不存在则返回 -1)
输入:[1,5,9,10], 9
输出:2 // 9 所在的数组下标为 2
先来看朴素的做法:枚举数组中的每一个元素,判断元素是否为 targetta ...
关于我的 butterfly 主题美化配置
本文仅适用于 hexo 主题: Butterfly , 版本: 4.3.0
前言
本篇文章用于记录关于本博客 Butterfly 主题的所有美化/配置,后续如有新增变更会持续更新
CDN - 静态资源加速
为什么需要改 CDN ?
国内因复杂的网络环境 ,框架默认使用的 cdn 服务位于国外,有时访问不了
加速资源加载 ,减少用户等待资源加载的时间
我们可以使用来自 官网 [1]提供的配置模板:
供应商
格式
备注
Staticfile(七牛云)
https://cdn.staticfile.org/${cdnjs_name}/${version}/${min_cdnjs_file}
同步 cdnjs
BootCDN
https://cdn.bootcdn.net/ajax/libs/${cdnjs_name}/${version}/${min_cdnjs_file}
同步 cdnjs
Baomitu(360)
最新版本: http ...
hexo-renderer-markdown-it-plus plugin demo
I use hexo-theme-next for my blog, and I met a problem same with #826.
I wrote a plugin hexo-renderer-markdown-it-plus for fix it,and this article is a demo for hexo-renderer-markdown-it-plus
The hexo default hexo-renderer-marked do not support LaTex parser, you must referer external link to parse Latex grammar to html(That’s whathexo-theme-next did, hexo-theme-next use mathjax), and the mathjax and hexo-renderer-marked will cause some problem:
_ parse error, you must change x_i to x\_i(This pr ...
CF Educational Codeforces Round 15
A. Maximum Increase
You are given array consisting of n integers. Your task is to find the maximum length of an increasing subarray of the given array.
A subarray is the sequence of consecutive elements of the array. Subarray is called increasing if each element of this subarray strictly greater than previous.
Input
The first line contains single positive integer n (1≤n≤1051 \leq n \leq 10^51≤n≤105) — the number of integers.
The second line contains n positive integers a1a_1a1, a2a_2a2, … ...
[HTTPS]使用letsencrypt搭建SSL证书
官网:https://letsencrypt.org/getting-started/
使用certbot
certbot:https://certbot.eff.org/
可以按照官网上的来(一直没有成功过。。。)
也可以按照我的方法来执行
git clone https://github.com/certbot/certbot.gitcd certbot./certbot-auto
然后等待,自动安装完成之后会弹出一个蓝色的框,然后选择NO退出
如果nginx正在运行要把nginx关掉pkill nginx
再执行以下命令(如果想要知道更详细的信息,请自行查看官方文档或者./certbot-auto --help all)
./certbot-auto certonly --standalone --agree-tos -v -t --email chen93104@163.com -d www.chenhuachao.com -d chenhuachao.com -d chchc.me -d www.chchc.me
成功之后,会告诉我证书放在了/etc/letsenc ...
CentOS7 搭建OpenVPN
添加epel源
yum install epel-releaseyum cleanall # 可选yum update # 可选yum makecache # 可选
安装openvpn easy-rsa iptables
yum -y install openvpn easy-rsa iptables-services
配置easy-rsa
在这一步生成一些证书
CA证书
服务器证书和密钥
Diffie-Hellman密钥
客户端证书和密钥
cp -r /usr/share/easy-rsa/ /etc/openvpn/cd /etc/openvpn/easy-rsa/2.*/vim vars
确保vars中以下参数正确
export KEY_SIZE=2048export CA_EXPIRE=3650export KEY_EXPIRE=3650export KEY_NAME="EasyRSA"
生成服务器证书密钥和客户端证书密钥
source ./vars./clean-all# 生成证书# Name [EasyRSA] 那一项写ca./build- ...
编译USB无线驱动8192cu
之前买的那个USB无线驱动不好用。。然后在某东上买了一个EDUP EP-DB1608 11AC双频,买之前很惊讶的发现其官网上有Linux驱动下。果断买买买
在这里下载对应版本的linux版EP-DB1608驱动
http://www.edup.cn/support/driver-download/
我的系统:
uname -aLinux xxx 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
解压缩之后进入文件夹
chmod +x install.shsudo ./install.sh
执行完之后一阵报错,于是去源代码里找看是怎么回事。。
cd 8811linux/drivertar xvf rtl8821AU_linux_v4.3.14_13455.20150212_BTCOEX20150128-51.tar.gz
找了半个小时不知道怎么解决,于是去github上找,没想到还真找到了
https://github.com/ulli-kroll ...
在network中的所有内容中查找
在chrome的dev-tools中,并没有提供在network的所有内容中查找。。这样在查找接口的时候很难。。然后在google上找了两个小时之后终于找到,有前人开发的插件
github地址:
https://github.com/roryc89/network-filter
linux 编译安装USB网卡驱动 rtl8188eu(s)
在某东上买了一个USB无线网卡。因为我的笔记本的ubuntu下网卡驱动有问题,连接老是不稳定经常断开,研究了一阵子后弃疗,所以买了一个USB无线网卡。
第二天到货。
插上USB无线网卡,然后输入以下命令
xxx@xxx:~$ lsusbBus 002 Device 002: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
通过查看可以看到后面哪个版本号RTL8188EUS,但是在官网找了以下,发现全是win版本的,于是在github上搜了以下,发现有RTL8188EUS这个项目,clone下来之后发现无法编译。
于是网上又找了找,发现了有的人RLT8188EUS可以安装RLT8188EU的驱动成功。。于是github上又找了RLT8188EU,编译安装重启。。成功。。。
链接:
https://github.com/lwfinger/rtl8188eu
ssh出错 sign_and_send_pubkey: signing failed: agent refused operation
在服务器添加完公钥之后,ssh服务器然后报了这个错误
sign_and_send_pubkey: signing failed: agent refused operation
然后执行了以下命令才好。。
eval "$(ssh-agent -s)"ssh-add