LeetCode——链表
链表的定义C++定义链表方式,如下所示:
123456// 单链表struct ListNode { int val; // 节点上存储的元素 ListNode *next; // 指向下一个节点的指针 ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数}
自定义构造函数与默认构造函数的区别:
通过自己定义构造函数初始化节点
1ListNode* head = new ListNode(5);
使用默认构造函数初始化节点
12ListNode* head = new ListNode();head->val = 5;
所以如果不定义构造函数使用默认构造函数的话,在初始化的时候就不能直接给变量赋值。
LeetCode 203. 移除链表元素设置一个虚拟头结点,这样原链表的所有节点就都可以按照统一的方式进行移除
1234567891011121314151617181920class Solution {public: ListNode* rem ...
LeetCode——数组
数组元素不能删除,只能覆盖
vector的底层实现是array,严格来讲vector是容器,不是数组
LeetCode 704. 二分查找二分法的第一种写法定义 target 在一个左闭右闭的区间里,也就是[left, right] (这个很重要非常重要)
while (left <= right) 要使用 <= ,因为left == right是有意义的,所以使用 <=
if (nums[middle] > target) right 要赋值为 middle - 1,因为当前这个nums[middle]一定不是target,那么接下来要查找的左区间结束下标位置就是 middle - 1
1234567891011121314151617181920// 版本一class Solution {public: int search(vector<int>& nums, int target) { int left = 0; int right = nums.size() - 1; / ...
Mesh组网之单线复用与VLAN网口复用
前提背景时间:2022年12月28日
基础:精装修房子,每个房间一个网口且弱电箱在门口玄关柜
目的:实现全屋网络覆盖,无缝漫游
准备:两台路由器;两台VLAN交换机;若干网线
当前网络走线:
网线均是超五类线,没能上到超六类很是可惜,但也还是能满足千兆宽带。
IEEE802.1Q 与 VLAN 知识根据IEEE 802.1Q 协议也就是“Virtual Bridged Local Area Networks”(虚拟桥接局域网,简称“虚拟局域网”)协议,主要规定了 VLAN 的实现方法,要使交换机能够分辨不同VLAN的报文,需要在报文中添加标识VLAN信息的字段。
协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag),用于标识数据帧所属的VLAN:
在一个VLAN交换网络中,以太网帧主要有以下两种形式:
有标记帧(Tagged帧):加入了4字节VLAN标签的帧。
无标记帧(Untagged帧):原始的、未加入4字节VLAN标签的帧。
以太网链路包括接入链路(Access Link)和干道链路 ...
Game Theory —— 博弈论
ECON 159: Game Theory1. Introduction: five first lessonsDefinition. My strategy $\alpha$ strictly dominates $\beta$ my strategy if my payoff from $\alpha$ is strictly higher than $\beta$ that from regardless of others’ choices.
Lesson 1. You should never play a strictly dominated strategy.
Lesson 2. Rational play by rational players can lead to bad outcomes.
Lesson 3. To figure out what actions you should choose in a game, a good first step is to figure out what are your payoffs (what do yo ...
软件测试上机实验
使用说明Centos12345678# 用户名root# 密码root# es用户yjy# 密码root
数据库导入 t_test.sql
项目修改
自行修改 mysite 项目中 views.py 和 arg_helpers.py
views.py:
1es = Elasticsearch('http://192.168.31.13:9200')
arg_helpers.py:
123456class args: mysql_host='192.168.31.189' mysql_port=3306 mysql_user='root' mysql_password='root' mysql_database='software_test'
自行修改 vue_test 项目中 config\index.js
index.js:
123456789proxyTable: { '/searchKeyWord':& ...
手算KMP算法的 next 数组值和 nextval 数组值
求next数组求解方法:根据模式串下标分情况计算!
若模式串下标从 “1” 开始
next 数组中第一位写 0,第二位写 1。
求解后面每个元组的 next 值时,将该元素A的前一个元素B与其 next 值所对应下标的元素C进行比较:如果B与C相同,则将元素B的 next 值 +1 作为当前元素A的 next 值;否则,将前一个元素B和C的next值所对应的元素进行比较,如果相同,则将元素C的 next 值 +1 作为当前元素A的 next 值,以此重复操作。
如果找到模式串最前面都找不到相同的元素,则将元素A的 next 值赋为 1。
过程如下:
第一步:填入0,1
下标
1
2
3
4
5
6
7
8
9
模式串
a
b
a
a
b
c
a
b
a
next
0
1
第二步:比较第二个元素和其 next 值所对应下标的元素,不相同。则当前所求第三个元素 next 值赋为 1
下标
1
2
3
4
5
6
7
8
9
模式串
a
b
a
a
b
c
a
b
a
next
0
1
1
第三步 ...
2022新年倒计时烟花
fireworksBased on the work of two authors on CODEPEN with slight modifications
Resource
Countdown Timer
Firework Simulator v2
DemoYou can watch the final product on wablers.xyz/fireworks
DownloadYou can download the zip from Releases
寒假每日一题——奶牛棒球
奶牛棒球农夫约翰的 NN 头奶牛排成一排,每头奶牛都位于数轴中的不同位置上。
它们正在练习投掷棒球。
农夫约翰观看时,观察到一组三头牛 $(X,Y,Z)$ 完成了两次成功的投掷。
牛 XX 把球扔给她右边的牛 $Y$,然后牛 $Y$ 把球扔给她右边的牛 $Z$。
约翰指出,第二次投掷的距离不少于第一次投掷的距离,也不超过第一次投掷的距离的两倍。
请计算共有多少组牛 $(X,Y,Z)$ 可能是约翰所看到的。
输入格式第一行包含整数 $N$4。
接下来 $N$ 行,每行描述一头牛的位置。
输出格式输出奶牛三元组 $(X,Y,Z)$ 的数量。
$(X,Y,Z)$ 需满足,$Y$ 在 $X$ 的右边,$Z$ 在 $Y$ 的右边,并且从 $Y$ 到 $Z$ 的距离在 $[XY,2XY]$ 之间,其中 $XY$ 表示从 $X$ 到 $Y$ 的距离。
数据范围$3≤N≤1000$,奶牛所在的位置坐标范围 $[0,10^8]$。
输入样例:1234565311074
输出样例:14
样例解释四个可能的奶牛三元组为:$1−3−7,1−4−7,4−7−10,1−4−101−3−7,1−4−7,4−7−10 ...
Visual C++ 程序设计题库及答案
1. 结合开发经验,阐述总结传统的过程式编程模式的特性。(1)在一个main函数中调用其他函数来完成各种各样的功能
(2)采用顺序的、关联的、过程驱动的程序设计方法一个程序是一系列预定好的操作序列的组合,它具有一定的开头、中间过程和结果
(3)程序直接控制程序事件和过程的顺序
(4)面向程序而不是面向用户,交互性差,用户界面不友好
2. 结合开发经验,解释何为文档与视图 。 文档
(1)文档是一种数据源,数据源最常见的是磁盘文件
(2)负责将数据保存到永久存储介质中,最常见的是保存到磁盘或数据库(串行化)
视图
(1)视图是数据的用户窗口,为用户提供了文档的可视数据显示
(2)视图给用户提供与文档中数据交互的界面
(3)一个文档会有一个或多个视图显示
(4)视图可以直接访问文档类中的这些成员变量,并通过这种方式来显示和更新数据
3. 结合开发经验,总结 MFC类库中窗口类主要包括哪些下属类。(1)窗口类 CWnd(所有窗口类的基类)
(2)框架窗口类
(3)视图类
(4)对话框类
(5)控件类
(6)控件栏类
(6)属性页类
4. 在WINDOWS中, 控件分为哪三类 ...
蓝桥杯之树状数组和线段树
蓝桥杯之树状数组和线段树树状数组
lowbit(x):返回x的最后一位1
add(x,v):在x位置加上v,并将后面相关联的位置也加上v
query(x):询问x的前缀和
1. 动态去连续区间和给定 n 个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列 [a,b] 的连续和。
输入格式第一行包含两个整数 n 和 m,分别表示数的个数和操作次数。
第二行包含 n 个整数,表示完整数列。
接下来 m 行,每行包含三个整数 k,a,b (k=0,表示求子数列[a,b] 的和;k=1,表示第 a 个数加 b)。
数列从 1 开始计数。
输出格式输出若干行数字,表示 k=0 时,对应的子数列 [a,b] 的连续和。
数据范围
1≤n≤100000,\\
1≤m≤100000,\\
1≤a≤b≤n数据保证在任何时候,数列中所有元素之和均在 int 范围内。
输入样例:123456710 51 2 3 4 5 6 7 8 9 101 1 50 1 30 4 81 7 50 4 8
输出样例:123113035
AC12345678910111213141516171819202 ...