Web开发
Unread介绍本博客用于记录一些技术学习笔记,便于我日后自己查询。这篇文章记录一下创建此博客时的过程以及配置时的产生的问题以及一些解决方法。内容主要包括:
域名准备:购买域名并托管到Cloudflare
Hexo博客搭建: 搭建环境并且部署
配置Hexo主题
搭建的全部过程中可能遇到的问题
域名准备具体视频演示参考域名托管参考视频。
1. 网站注册这里选择Namesilo网站做演示,注册结束之后直接搜索想要的域名加入购物车后使用默认地址后可使用支付宝购买。
2. 托管到Cloudflare首先注册Cloudflare账号,注册完成后选择添加站点,在如下界面中将购买好的域名输入进行扫描。随后默认点击直到更改名称服务器,界面如下:回到Namesilo,点击Domain Manager, 点击购买好的域名,默认在Quick settings界面,将默认的三条NameServer删除,更改为Cloudflare分配的两个后保存。随后回到cloudflare,点击立即检查名称服务器,随后点击继续,随后默认点击,等到界面中的域名有绿色勾表示可以正常使用。
Hexo博客搭建具体文章和视频演示参考Hexo搭 ...
215. 数组中的第K个最大元素利用堆或者sort进行排序可以直接利用Cpp当中的优先级队列即最大堆,或者将数组排序后取就行,不过实现的时间复杂度为 $O(nlogn)$,不符合题目要求。
12345678910111213class Solution {public: int findKthLargest(vector<int>& nums, int k) { priority_queue<int> que; for(int num:nums){ que.push(num); } for(int i=0;i<k-1;i++){ que.pop(); } return que.top(); }};
快速选择首先理解一下快速排序,如下代码为最简版的快排代码(取数组第一个元素作为基准,分为左右两个数组,逐渐递归当数组长度为1时返回):
...
窗口函数窗口函数(Window Function)是在查询结果的“窗口”内 对行做计算,不会把行合并成一条(不像 GROUP BY)。
12345函数名(...) OVER ( [PARTITION BY 列1, 列2, ...] -- 分区,相当于每个组内单独计算 [ORDER BY 列3, 列4, ...] -- 窗口内行的顺序 [ROWS|RANGE BETWEEN 起点 AND 终点] -- 窗口框架)
其中ROWS的关键词有:
UNBOUNDED PRECEDING:从分区的第一行开始
N PRECEDING:从当前行前N行开始
CURRENT ROW:从当前行开始
N FOLLOWING:从当前行后N行开始
UNBOUNDED FOLLOWING:分区最后一行
聚合类12345SUM(salary) OVER (PARTITION BY dept) -- 部门工资总和COUNT(*) OVER (PARTITION BY dept) -- 部门人数AVG(salary) OVER (PARTITION BY dept) ...
解题步骤
确定dp数组的含义
确定递推公式
初始化dp数组
确定遍历顺序
举例推导dp数组
背包问题0-1背包有n件物品,最多能背重量为w的背包,其中第i件物品的重量为weight[i],价值为value[i],每一个物品只能用一次,问如何装价值总和最大。
暴力可以用回溯法求解,每一个物品有取和不取两个状态,时间复杂度为 $O(2^n)$。
12345678910111213141516171819202122232425262728293031323334#include<iostream>#include<vector>using namespace std;int main(){ //二维数组实现0-1背包 int n,bagweight; cin>>n>>bagweight; vector<int> weight(n); vector<int> value(n); for(int i=0;i<n;i++){ cin>>wei ...
深搜和广搜岛屿数量(深搜版)通过深搜,每遇到一个没遍历过的陆地,计数器就增加1。遍历时需要visited数组判断是否遍历过。对于MN的二维表格,利用DFS进行搜索,时间复杂度为 $O(m*n)$。
对于n个节点,e条边,DFS的时间复杂度为$O(n+e)$
12345678910111213141516171819202122232425262728293031323334353637383940//深搜模板题#include<iostream>#include<vector>using namespace std;int dire[4][2] = {1,0,-1,0,0,1,0,-1}; //四个方向int count = 0;void dfs(int x,int y,vector<vector<int>>& grid,vector<vector<int>>& visited){ //从一个确定的岛屿块出发,把这个岛遍历完 if(grid[x][y]==0||v ...
工具(框架)学习
UnreadPytorch环境配置CUDA driver和CUDA runtime版本
确认自己显卡算力 -> 确认自己显卡型号
确认自己可以选择的CUDA Runtime Version
确保自己的CUDA Driver Version>= CUDA Runtime Version
在Pytorch官网上安装选择的版本小于等于nvidia-smi右侧的CUDA version
参考:
数据加载和处理DatasetPyTorch 的 Dataset 类是一个数据集的抽象类,主要用于定义如何获取数据及其对应的标签。可以用来加载各种格式的数据,例如图片、文本、CSV 文件等。可以继承 torch.utils.data.Dataset 并重写其中的方法来自定义数据集。对于图片数据,根据数据集存放地址,创建数据集的代码如下:
12345678910111213141516171819202122232425262728293031323334import osfrom torch.utils.data import Datasetfrom PIL import Image# 自定 ...
HDFSHDFS配置HiveHive配置连接DataGrip12345start-dfs.shstart-yarn.shcd /export/servers/hivenohup bin/hive --service metastore >> logs/metastore.log 2>&1 &nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 &
启动完毕后,在DataGrip中连接Hive,端口默认为10000。
可以用jps命令查看Hive的进程。结果如下:
常用语句不同于MySQL,Hive的语法和MySQL的语法略微不同。
12345678910-- 创建表-- Hive 不支持 AUTO_INCREMENT。-- 必须指定数据的存储格式(如 TEXTFILE、PARQUET、ORC 等)和字段分隔符。CREATE TABLE table_name ( column1 STRING, column2 INT)ROW FOR ...
基础语法DDL(Data Definition Language)DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)
12345678910111213141516-- 数据库操作-- 查询所有数据库show databases;-- 查询当前使用的数据库select database();-- 创建数据库create database if not exists 数据库名 default charset utf8mb4;-- 删除数据库drop database if exists 数据库名;-- 使用数据库use 数据库名;
1234567891011121314151617181920212223242526272829303132333435363738-- 表操作-- 查询所有表show tables;-- 查询表结构desc 表名;-- 查询指定表的创建语句show create table 表名;-- 创建表CREATE TABLE 表名 ( 字段名1 字段类型1, 字段名2 字段类型2, ...);-- 删除表drop table if e ...
介绍记录Linux(Ubuntu)当中常用命令。
命令汇总1234ls #查看当前目录,可以加路径ls -a #展示隐藏文件ls -l #列表形式,更多细节ls -lh #显示文件大小单位
1234cd #切换到指定目录cd .. #上一级cd ~ #切到当前用户的home目录pwd #查看当前目录
1mkdir -p 路径 #创建文件夹,-p表示自动创建不存在的父目录
123touch 路径 #创建文件cat 路径 #查看文件more 路径 #可以翻页查看文件
123cp -r 路径1 路径2 #复制文件或者文件夹,复制文件夹时加入-rmv 路径1 路径2 #移动文件或者文件夹,若目标不存在则进行改名rm -r -f 路径1 路径2 ... # 删除文件或者文件夹,-r表示删除文件夹,-f表示强制删除,参数可以用*模糊匹配
12find 起始路径 -size +10k #从起始路径找大于10KB的文件find 起始路径 -name "文件名" #找匹配文件名的文件
123grep -n 关键字 路径 #从文件中用关键字过滤,-n ...
介绍本文介绍Vless以及XTLS的原理,XTLS被探测原因以及Vless+ws+tls+web+cdn通过X-UI进行搭建。
Vless和xtls相对Vmess,无需额外加密以及校对时间。在进行传输时,Vmess在对数据包加上头部的同时会对后续进行加密,但是Vless只添加了头部而不进行加密。因此数据包经过Vless时的组成为:
Vless头部
google.com
搜索内容(首先和google通过代理进行了tls连接,内容通过tls进行了加密)
由于直接发送会暴露访问的网址(google),除了通过tls进行全部加密之外,也可以用xtls进行加密,他只会对搜索内容之前的小部分内容进行加密,因此效率更高,随后数据包加上VPS的域名进行传输。
不过xtls加密方式为tls1.3,而搜索内容一般时用tls1.2进行加密,这个则是其可以被精准探测的原因。
当数据包传到服务器时,首先确定Vless协议和id正确后,即可帮我们去访问google。
若我们发送的是trojan数据包,服务器端会将数据包回落到trojan客户端的监听的端口上。
Vless+xtls+回落搭建(trojan)安装 ...










