力扣每日一题Day02
事情不是足以改变世界才算重要。
题目描述:移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。
不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。
元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。
解题代码:1234567891011121314151617181920212223242526class Solution {public: int removeElement(vector<int>& nums, int val) { int len = nums.size(); int n = 1; int i; bool is_end = false; for(i = 0; i < len; i++){ while(nums[i] == val){ if(i + n == len ...
力扣每日一题Day01
最危险情况是当你不再有新进展。
题目描述:合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。
解题代码:123456789101112131415161718192021222324class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { vector<int> nums3(m + n); int i = 0; int j = ...
数据结构基础
重拾数据结构我认为数据结构相关的东西都是同一套模板,只不过是使用了不同的数据存储方式,所以看懂代码思路很重要,看懂思路后面的不论是顺序表,链表还是树,其实性质大差不差。
顺序表123456789101112131415161718192021222324#include<stdio.h> //若用printf,scanf,getchar,putchar,gets,puts函数需包含该头文件#include<malloc.h> //用malloc,free,realloc函数需包含该头文件#include <iostream>#define MAXSIZE 100 //设线性表初始分配空间大小typedef int ElemType; //先设定数据元素的类型为整型//0:定义顺序表的结构类型typedef struct { ElemType* elem; int length; int listsize;}SqList;//1:初始化顺序表int InitList_Sq(SqList& L){ L.elem ...
数据库内核开发-基础原理
数据库内核开发-基础原理篇项目框架
sql执行流程代码
1234567891011121314151617181920YY_BUFFER_STATE buf = yy_scan_string(data_recv);if (yyparse() == 0) { if (ast::parse_tree != nullptr) { try { // analyze and rewrite std::shared_ptr<Query> query = analyze->do_analyze(ast::parse_tree); yy_delete_buffer(buf); finish_analyze = true; pthread_mutex_unlock(buffer_mutex); // 优化器 std::shared_ptr<Plan> plan = optimizer- ...
数据库内核开发-存储模块
数据库内核开发-存储模块相关目录结构
disk_manager: 主要用于数据库和磁盘文件之间交流,操作存储在磁盘中的数据
buffer_pool_manager: 主要用于操作数据库缓冲池
rm_file_handle:主要用于对记录的增删改查
他们中封装了很多对数据进行基本操作的方法
数据的存储原理一张最基本的数据库表,它包含两部分,第一部分是表头(元数据),它存储字段信息,第二部分是数据
id
name
1
xiaoming
2
xiaohong
(第一行为表头,2,3行为数据)
像这样的,数据库中的每一行,在数据库系统中是以二进制形式作为一条记录进行存储的,而数据库对磁盘进行操作时并不是以记录为单位,如果每操作一次数据就要回磁盘中操作记录,这样做的效率是极低的,所以数据库中引入了另一种关系模型页,以页为单位管理记录。
因为任何涉及到磁盘的读写的操作,其效率是远不如直接在内存中进行运算的,所以我们要想提高效率,就必须要减少磁盘读写的次数,除了上述说的以页为单位操作数据,在数据库中一般还存在缓冲池(bufferpool),他可以将一次磁盘读取的多个页暂时存储在 ...
verilog入门学习
驴——verilog入门笔记
部分截图来自b站
1模块结构
记住这个结构,学习verilog的前提是先看懂
举例
123456789module Full_adder( output Fi, output Cout, input Ai, input Bi, input Cin ); assign {Cout,Fi}=Ai+Bi+Cin;endmodule
2assign赋值语句
3always语句
类似于If,后面的条件满足时才执行下面的语句
always后的条件有两种:边沿敏感,电平敏感
写法:
另外如果always后有多条赋值语句,则需要用begin end围起来
例如
12345always @(a,b,cin) begin s... count... end
4模块调用
在其他模块里调用已经写好的模块,类似于方法调用,需要对象名和方法参数
举例
12345//已存在方法A(CLK,I,O)//调用AA a1(.CLK(clk),.I(i),.O(o))//这样写参数比较规范A a2(c ...
MySQL基础
MySQL&JavaWebの驴1.基本语法
SQL分类
DDL:针对数据库和表的增删改
DML:对单个表的数据进行增删改
DQL:查询表中数据
DCL:对数据库进行权限控制
创建12345CREATE TABLE db1(##创建表id int,##注意名在前,变量类型在后name varchar(10),age int,birth DATE);
查询12SELECT * FROM db1;##SELECT `name` FROM db1;也可以单独查询一列
删除123DROP TABLE db1;##因为无法确定要删除的表是否存在,所以有更规范的写法:DROP TABLE if EXISTS db1;
表,列操作1234ALTER TABLE db1 RENAME TO stu;##表重命名ALTER TABLE stu ADD gender char(1);##添加列ALTER TABLE stu CHANGE gender sex char(1);##改列名ALTER TABLE stu DROP sex;##删除列
查询所有1SELECT * FROM stu ...
驴のSpringBoot学习笔记
驴のSpringBoot学习笔记
部分资料来自于黑马程序员
1.SpringBoot入门1.1在idea创建SpringBoot
如图所示在项目中创建新的模块,模块选择Spring Init ,特别提醒注意自己的SDK版本号(我是jdk8),然后正常的起名字,type选择maven,java版本选择你的版本(我是8)然后next
这里勾选Web,上方的springboot默认就好
1.2尝试创建一个开发控制器创建java文件(SB是springBoot缩写)
尝试写一段代码
1234567891011@RestController@RequestMapping("/books")public class SB { @GetMapping public String get(){ System.out.println("hello world"); return "hello world"; }}
1.3运行可能出现的错误:无效的发 ...
驴のSpringBoot学习笔记(二)
驴のSpringBoot学习笔记(二)
部分笔记来自于黑马教育
1.NoSQL1.1Redis数据库
Redis和MySQL一样,也是一种数据库类型,但和MySQL相比有着一些不同:
MySQL是关系型数据库,而Redis是非关系型数据库(NoSQL)。
MySQL用于持久化存储数据到硬盘,功能强大,但是速度缓慢;而Redis用于存储使用较为频繁的数据到缓存中,读取速度快。
MySQL的数据存放在磁盘中;而Redis的数据存放在内存中。
下载地址:https://github.com/tporadowski/redis/releases (科学上网)
1.1.1Redis数据库简单使用下载完成后文件目录:
在该目录下启动cmd,并输入 redis-cli.exe ,你会看到这玩意
这里先不要操作,先输入shutdown,再exit
执行完上述操作后,再输入 redis-server.exe redis.windows.conf,就可以运行我们的redis了
再重新打开 redis-cli.exe,尝试一次简单的存取
ok,现在你已经会了redis了👍
1 ...
java入门笔记
驴のJAVA——奇妙之旅
部分笔记来自韩顺平教育
Markdown快捷键
IDEA快捷键1.删除行:Ctrl + D
2.复制行:Ctrl + Alt + 向下箭头
3.补全代码:Alt + /
4.导入该行需要的类:Alt + Enter
5.生成构造器快捷键:Alt + insert
6.快速定位方法Ctrl + B
7.自动分配变量名:.var
1.类与对象1.对象的内存布局)
举个例子:
1Cat cat1 = new Cat();
cat1是一个引用类型,他指向一块内存地址,那块内存地址里有类的==属性信息==
但要注意的是,如果是字符串型的属性信息,会放在==方法区==中的==常量池==里,只在类的内存地址中保存一个字符串的地址(如图)。
当Cat类被new时,同时会在方法区对类的信息进行一个加载,加载内容是==属性信息==和==方法==。
2.类与对象的 ...