自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 使用VMware虚拟机ssh连接win10宿主机

零、写在前面因为项目需要尝试了一下这种操作,因为这种需求很奇怪所以网络上并没有相关资料,不断地尝试终于成功了,特此记录。明确环境:答主有一台windows10的电脑作为宿主机,安装了VMware Workstation Pro虚拟机软件,里面有一个ubuntu20.04的虚拟机,尝试ubuntu虚拟机内使用ssh连接win10宿主机。win10主机,作为SSH Server。ubuntu20.04虚拟机,作为SSH Client。一、虚拟机SSH Client服务ubuntu20.04 默认安装

2021-11-09 17:03:08 5257 6

原创 【Python】【服务器】urllib.request、Crontab、安装Python3

一、Linux服务器定时任务启动Linux下Python脚本自启动与定时任务详解linux定时任务的设置 crontab 配置指南# crontab -e编辑定时任务1、每分钟执行一次* * * * * command2、每隔2小时执行一次* */2 * * * command (/表示频率)3、每天8:30分执行一次30 8 * * * command4、每小时的30和50分各执行一次30,50 * * * * command(,表示并列)5、每个月的3号到6号的8:30执

2021-08-23 21:27:18 323

转载 【操作系统】用户级线程和内核级线程的区别

用户级线程和内核级线程,你分得清吗?

2021-07-18 15:37:14 289

原创 【服务器】网站支持HTTPS Nginx配置SSL证书 阿里云申请SSL证书

如何使网站支持https访问?nginx配置https证书Nginx 安装 SSL 配置 HTTPS 超详细完整全过程

2021-07-17 00:24:11 217 2

原创 【计算机网络】IPV4地址和IPV6地址 电脑是如何相互访问和连接的?

一、云服务器主机内网 ip 和外网 ip 的区别云服务器主机内网 ip 和外网 ip 的区别目前网络访问都需要NET转换,所以云服务器虽然拥有一个自己的外网IP,但是也会有内网IP。二、AP隔离如何理解无线路由中的AP隔离,你了解AP隔离吗?如何让路由器的wifi网段和局域网段在同一个网段(网络)?为什么同一个路由器的两台电脑不在同一个局域网内 为什么连接到同一台路由器的路由器设置了AP隔离,为每个连接路由器的设备分配一个新的子网(私有IP)。而只有当两个主机在同一子网下,才能够直接进行联机

2021-07-17 00:07:19 2399

原创 【Linux】ping程序解析与扩展

目录1. Ping程序背景知识1.12. 分析预备知识2.1 主要数据结构2.1.1 struct proto2.1.2 struct addrinfo2.1.32.1.42.1.52.1.62.2 socket2.3 命令选项解析函数getopt()2.4 用户权限设置2.5 Linux信号(signal)机制3. 源代码分析3.14. 源代码扩展4.11. Ping程序背景知识1.12. 分析预备知识2.1 主要数据结构2.1.1 struct protostruct proto { v

2021-07-09 10:52:02 657

原创 【Linux】ping程序解析

一、参考资料1.int getopt(argc, argv, “v”)参考资料:Linux下getopt()函数的简单使用extern char* optarg;//保存选项的参数的//optind初始值为1,越过了程序路径的参数/* 通过argv[optind]或optarg来获得参数 */extern int optind;//记录下一个检索位置//opterr初始值为一extern int opterr;//是否将错误信息输出到stderrextern int optopt;//

2021-07-03 00:59:00 354

原创 【服务器】nginx反向代理和json-server搭配在云服务器搭建数据接口

一、购买域名二、域名解析将购买的顶级域名及其子域名解析到DNS服务器三、宝塔面板新建站点新建站点data.gdyzx.xyz,并测试公网是否能够访问到初始页面四、启动json-server服务器启动tmux并将会话与窗口分离,避免关闭远程连接后进程被关闭:# tmux启动tmux窗口# tmux detach将窗口与会话分离具体内容Tmux 详解及使用教程进入到json文件存储的文件夹# cd /www/wwwroot/lotdata.gdyzx.xyz/启动json-ser

2021-06-30 10:42:18 1387 1

原创 【阿里云centos服务器】【node.js安装】【创建软链接】【npm指令安装】

一、操作环境阿里云Centos服务器二、如何安装npm直接安装好node.js就有npm命令了下载和安装node.js# wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz // 下载# tar xf node-v10.9.0-linux-x64.tar.xz // 解压# cd node-v10.9.0-linux-x64/ // 进入解压目录# ./

2021-06-29 17:13:51 354

原创 Leetcode刷题笔记29:201703-1-2-3-4(全部评测一遍过)

第二十六天 2021-4-10 备战CSP刷题模块:CSP 201703-1-2-3-4最后一天复习CSP,明天正式考试。之后将降低算法学习强度,每周学习一章AcWing教程即可。一、201703-1Easy.#include<iostream>#include<cstdio>using namespace std;int n,k,w;int sumW,sumP;int main(){ sumP=0;sumW=0; scanf("%d %d",&am

2021-04-10 17:31:27 258

原创 Leetcode刷题笔记28:201612-1-2-3

第二十五天 2021-4-8 备战CSP刷题模块:CSP 201612-1-2一、201609-1如此垃圾的逻辑和代码,竟然一遍编译过,一遍AC过。能AC的代码就是好代码。#include<iostream>#include<cstdio>#include<algorithm>using namespace std;const int N=1010;int n;int num[N];int l,r,mid;int main(){ scanf

2021-04-08 22:13:49 117

原创 Leetcode刷题笔记27:202006-4 201604-1-2(矩阵快速幂 | 递推公式变换矩阵)

第二十三天 2021-4-6 备战CSP刷题模块:CSP 202006-4一、矩阵快速幂教程文章通俗易懂,一应俱全:矩阵快速幂——入门

2021-04-07 20:43:23 250

原创 Leetcode刷题笔记26:201909-1-2-3(C++:sprintf | C++:字符串函数)

第二十二天 2021-4-5 备战CSP刷题模块:CSP 201909-1-2-3一、201909-1第一题,无难度#include<bits/stdc++.h>using namespace std;typedef long long ll;ll N,M;ll K,t,P;ll op;void init(){ K=t=P=0;}int main(){ freopen("in.txt","r",stdin); init(); scanf("%lld%lld

2021-04-05 12:54:08 198

原创 Leetcode刷题笔记25:202012-1-2-3(CSP考试经验 | 深入理解C++迭代器 | C++字符串分割)

第二十一天 2021-4-4 备战CSP刷题模块:CCF 202012-1-2-3-4CSP考试经验:1. #include<bits/stdc++.h>包含全部头文件;2. 使用全局变量;3. O(1)的参数都定义为long long类型;4. 使用加速输入语法cin.tie()和sync_with_stdio(); !!!输入字符串请勿使用5. 面对较难的算法,画一下整个算法流程;6. 注意输入类型和定义类型一致。一、202012-1无难点,一遍过#include&lt

2021-04-04 23:46:00 315

原创 Leetcode刷题笔记24:201912-1-2(加速输入输出 | STL:low_bound()二分查找函数 | const修饰类成员函数 | STL:sort() | 带LAZY标记的线段树)

第二十一天 2021-4-3 备战CSP刷题模块:CCF 201912-1-2每题必须制作多个测试程序:正常输入测试程序逻辑,极大输入测试数据类型定义一、201912-1一遍过,简单注意仔细观察规律#include<bits/stdc++.h>using namespace std;int n;int c[4];int num;void init(){ num=1; for(int i=0;i<4;i++) c[i]=0;}bool isSeven(int

2021-04-03 14:21:19 161

原创 Leetcode刷题笔记23:AcWing(单链表 双向链表 图的dfs 图的bfs 拓扑排序) 202006-1-2)(万能头文件)

第二十天 2021-4-2 备战CSP刷题模块:CCF 202006-1-2 | AcWing算法基础AcWing已刷一、AcWing模板:单链表 双向链表 图的dfs 图的bfs 拓扑排序二、CSP 202006-1直接背板大佬解法个人解法有未知的错误,只有90分#include<iostream>#include<vector>using namespace std;typedef struct point { int x; int y;}P;typ

2021-04-03 00:07:39 249

原创 Leetcode刷题笔记22:202009

第十九天 2021-3-28备战CCFCSP刷题模块:CCF 202009比赛技巧:如何改变输入输出流个人代码使用多态的思想,为每一个逻辑门构建一个对象用输入驱动输出#include<stdio.h>#include<iostream>#include<algorithm>#include<string>#include<vector>#include<cstdlib>using namespace std;

2021-03-28 20:14:28 127

原创 Leetcode刷题笔记21:202009(最终计划使用C++ | CCF CSP竞赛具体备赛计划)

第十九天 2021-3-27备战CCFCSP刷题模块:CCF 202009最终计划AcWing 算法基础课程 每日一个视频AcWing 算法基础课程 每日多个算法模板CCF CSP 每日5道比赛真题比赛技巧:如何改变输入输出流#include <stdio.h>int main(){ freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); int x,y; scanf("%d%d",&x,&am

2021-03-27 21:56:09 266

原创 Leetcode刷题笔记20:【401】二进制手表(使用Java代替C++ | String、StringBuffer和StringBuilder)

第十八天 2021-3-26每日刷四题刷题模块:位运算 - 简单难度两个改变加入Acwing中课程的学习明天开始暂停leetcode的刷题,转为准备CCF-CSP使用Java语言代替C++一、 【题】二进制手表官方题解:使用递归枚举所有可能,并巧妙地使用hours和minutes数组简化代码代码十分的妙class Solution { int[] hours = new int[]{1, 2, 4, 8, 0, 0, 0, 0, 0, 0}; int[] minute

2021-03-26 23:09:28 169

原创 Leetcode刷题笔记19:【231】2的幂【268】丢失的数字【342】4的幂【389】找不同

第十七天 2021-3-25每日刷四题刷题模块:位运算 - 简单难度一、【题】2的幂 1000000 & (1000000-1)=1000000 & (0111111)=0000000本质上,n & (n-1) 将二进制中最右边的1变为0class Solution {public: bool isPowerOfTwo(int n) { if(n<=0) return false; return !(n &(n

2021-03-25 16:36:15 141

原创 Leetcode刷题笔记18:【190】颠倒二进制位【191】位1的个数

第十六天 2021-3-24每日刷两题刷题模块:位运算 - 简单难度一、【题】颠倒二进制位Leetcode官方题解从n的右边开始取数,塞入ret的右边,并把ret向左移动继续塞数。class Solution { public: uint32_t reverseBits(uint32_t n) { uint32_t ret = 0; for(int i=0;i<32;i++){ ret=ret<<1; ret+=n &amp

2021-03-24 21:19:05 105

原创 Leetcode刷题笔记17:【136】只出现一次的数字【169】多数元素 (位运算)

第十五天 2021-3-22每日刷四题刷题模块:位运算 - 简单难度一、C++ 位运算★★C++ 算法篇 位运算链接中的实用例子和应用都极好,具有实际应用价值。  比如我们经常要用的是否被2整除,一般都写成 if(n % 2 == 0) 可以换成 if((n&1) == 0)异或的几条性质:1、交换律:a ^ b=b ^ a2、结合律:(a ^ b) ^ c == a^ (b ^ c)“异或运算”的特殊作用:(1)使特定位翻转: 例:X=10101110,使X低4位翻转

2021-03-22 21:47:03 188

原创 Leetcode刷题笔记16:【922】按奇偶排序数组 II【976】三角形的最大周长n

第十四天 2021-3-17每日刷四题刷题模块:排序 - 简单难度一、【题】按奇偶排序数组 II遍历解法class Solution {public: vector<int> sortArrayByParityII(vector<int>& nums) { int n=nums.size(); vector<int> result(n); int ev=0; int od=1;

2021-03-17 22:18:22 125

原创 Leetcode刷题笔记15:【242】有效的字母异位词【349】两个数组的交集【350】两个数组的交集 II

第十三天 2021-3-16每日刷四题刷题模块:排序 - 简单难度一、【题】排序解法class Solution {public: bool isAnagram(string s, string t) { if(s.size()!=t.size()) return false; sort(s.begin(),s.end()); sort(t.begin(),t.end()); return (s==t); }};

2021-03-16 22:00:07 122

原创 Leetcode刷题笔记14:【703】数据流中的第 K 大元素【1046】最后一块石头的重量【122】买卖股票的最佳时机 II(priority_queue | 贪心算法)

第十二天 2021-3-14 每日刷四题刷题模块:堆 - 简单难度 | 贪心算法-简单难度一、STL:priority_queuec++优先队列(priority_queue)用法详解★★C++中priority_queue理解与使用普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。优先队列中,元素被赋予优先级。当访问元素时,具有最高优先级的元素最先删除。优先队列具有最高级先出 (first in, largest out)的行为特征。优先队列的内部实现为最大/最小堆。包

2021-03-14 17:22:46 244

原创 Leetcode刷题笔记13:【232】用栈实现队列【496】下一个更大元素 I【682】棒球比赛【844】

第十一天 2021-3-13 每日刷四题刷题模块:栈 - 简单难度一、【题】用栈实现队列与用队列实现栈大同小异,在push()时维持入栈的元素放入栈底即可。入栈时将其他元素放入辅助栈,将元素放入主栈,再将其他元素放回主栈。stack<int> mStack,aStack;void push(int x) { while(!mStack.empty()){ aStack.push(mStack.top()); mStack.pop();

2021-03-13 17:46:33 153

原创 Leetcode刷题笔记12:【20】有效的括号【155】最小栈【255】用队列实现栈(STL:stackC++ 单引号和双引号)

第六天 2021-3-12 每日刷四题刷题模块:栈 - 简单难度一、STL:stackC++ stack(STL stack)用法详解函数方法top()返回一个栈顶元素的引用,类型为 T&。如果栈为空,返回值未定义。push(const T& obj)可以将对象副本压入栈顶。这是通过调用底层容器的 push_back() 函数完成的。push(T&& obj)以移动对象的方式将对象压入栈顶。这是通过调用底层容器的有右值引用参数的

2021-03-12 21:17:17 216

原创 Leetcode刷题笔记11:【110】平衡二叉树【111】二叉树的最小深度(STL:pair)

第六天 2021-3-11 每日刷四题刷题模块:树 - 简单难度一、【题】平衡二叉树自顶向下,时间复杂度极高,涉及到许多无用的遍历时间复杂度:O(n^2)主要是调用height()多次自顶向下,没有在途中利用返回值。递归本身时自底向上的class Solution {public: bool isBalanced(TreeNode* root) { if (!root) return true; bool temp=abs(height(root-&g

2021-03-11 23:21:49 252

原创 Leetcode刷题笔记10:【100】相同的树【101】对称二叉树【104】二叉树的最大深度【108】将有序数组转换为二叉搜索树(STL:queue STL:deque)

第六天 2021-3-10 每日刷四题刷题模块:树 - 简单难度一、【题】相同的树直接递归地扫描整个树即可class Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(p!=nullptr && q!=nullptr && p->val!=q->val) return false; else if((p==nullptr &&a

2021-03-10 11:04:11 173

原创 Leetcode刷题笔记09:【83】删除排序链表中的重复元素【141】环形链表【160】相交链表【203】移除链表元素(STL:unordered_set Floyd判圈算法)

第六天 2021-3-9 每日刷四题刷题模块:链表 - 简单难度一、【题】删除排序链表中的重复元素class Solution {public: ListNode* deleteDuplicates(ListNode* head) { ListNode* now=head; if(head==nullptr) return head; while(now!=nullptr){ if(now->next!=null

2021-03-09 21:39:52 181 4

原创 Leetcode刷题笔记08:【21】合并两个有序链表

第六天 2021-3-8 每日刷四题刷题模块:链表 - 简单难度一、【题】合并两个有序链表使用迭代,类似于官方解法/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {

2021-03-08 22:39:15 113

原创 Leetcode刷题笔记07:【68】加一【88】合并两个有序数组【118】杨辉三角【119】杨辉三角Ⅱ

第四天 2021-3-7 每日刷两题刷题模块:数组 - 简单难度一、【题】加一注意if语句的判断,即数组变大特殊情况的处理class Solution {public: vector<int> plusOne(vector<int>& digits) { int n=digits.size(); int carry=1;//初始进位为1,正好使得末位+1 int sum=0; for(int i

2021-03-07 17:02:59 141

原创 Leetcode刷题笔记06:【26】删除排序数组中的重复项【27】移除元素【35】搜索插入位置【53】最大子序和(STL:unique C++特殊的遍历语法)

第四天 2021-3-6 每日刷两题刷题模块:数组 - 简单难度一、STL:unique()函数  unique函数属于STL中比较常用函数,它的功能是元素去重。  即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了(详细情况,下面会讲)。  由于它”删除”的是相邻的重复元素,所以在使用unique函数之前,一般都会将目标序列进行排序。  返回值是去重之后的尾地址,由于返回的是容器末尾,所以如果想得到去重后的size,需要减去

2021-03-06 15:29:40 235

原创 Leetcode刷题笔记05:【15】三数之和【16】最接近的三数之和

第三天 2021-3-5 每日刷两题之一一、【题】三数之和模式识别:遇到要求答案不重复的题(答案可能是数组等很难判断的类型),可以考虑使用排序。排序并保证答案的顺序过后,只要保证每一位在其循环层不重复,即可保证全部答案不重复。即:第一层循环时,若遇到相同的数则跳过第二层循环时,若遇到相同的数则跳过第三层循环时,若遇到相同的数则跳过class Solution {public: vector<vector<int>> threeSum(vector<int

2021-03-05 18:40:59 129

原创 Leetcode刷题笔记04:【4】盛水最多的容器 (动态规划)

第二天 2021-3-4 每日刷两题之二一、【题】盛水最多的容器1. 暴力枚举(超出时间)class Solution {public: int maxArea(vector<int>& height) { int n=height.size(); int maxCap=0; int left=0; int newCap; for(int left=0;left<n;left++){

2021-03-04 19:07:54 209 1

原创 Leetcode刷题笔记03:【3】无重复字符的最长字串 (C++string成员方法大全)

6

2021-03-04 16:57:22 171 1

原创 C++:Private成员被同一类模板的其他实例合法访问

实例a1和a2都属于类模板A,则由于C++的特性,实例a1可以访问a2的private的数据成员#include<iostream>using namespace std;class A {private: int value = 6;public: void reValue(A &a,int newValue) { a.value = newValue; } void String() { cout << value << endl;

2021-03-04 09:53:41 264 1

原创 Leetcode刷题笔记02:【2】两数相加 (C++初始化列表 结构体和类的区别)

第一天 2021-3-3 每日刷两题之二一、初始化列表 struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next(next) {}};C++ 类构造函数初始化列表 | 菜鸟教程

2021-03-03 23:25:34 176 1

原创 Leetcode刷题笔记01:【1】两数之和 (C/C++编译全过程 static关键字 extern关键字 vector unordered_map)

第一天 2021-3-3 每日刷五题之一一、C/C++编译全过程C语言编译过程详解预处理(Preprocessing):预处理用于将所有的#include头文件以及宏定义替换成其真正的内容。test.c->test.i①以.c文件为单位进行,各个.c文件之间不知道彼此的存在;②将#include的.h文件代码放入对应.c文件中,此时.h文件已经完成全部作用可以废弃(帮助理解.h文件本质,就是为了减少代码的重复编写而产生的,没有特殊功能);③将#define宏定义的值放入代码对应位置

2021-03-03 20:09:12 446 1

原创 Python技巧笔记

查看当前虚拟环境路径首先终端输入Python。进入Python执行界面;再输入以下两行代码即可:import syssys.executable转载出处

2021-02-22 19:49:34 83

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除