自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++面经知识点

面对对象:1.面向对象是一种编程思想,把一切东西看成是一个个对象,比如人、耳机、鼠标、水杯等,他们各自都有属性,比如:耳机是白色的,鼠标是黑色的,水杯是圆柱形的等等,把这些对象拥有的属性变量和操作这些属性变量的函数/方法打包成一个类来表示2.面向过程和面向对象的区别面向过程:根据业务逻辑从上到下写代码面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程C++五大特性:对象、抽象、封装与消息隐藏、继承、多态三大特性:封装、继承、多态封装:将代码的细节隐藏

2021-08-30 11:55:36 171 1

原创 进程和线程

进程由三部分组成:进程控制块PCB(管理)、程序、数据注:处理机即CPU进程控制:实现进程状态之间的转换。就绪队列(缺CPU资源)和阻塞队列(缺CPU资源和其他事件完成)

2021-08-18 19:28:47 212

原创 剑指offer题目分类

1.数组(线性表)面试题3:数组中重复的数字:暴力、排序、哈希表、辅助数组、交换属于面试题4:二维数组中的查找:选右上角数字,不断剔除行或列面试题11. 旋转数组的最小数字:顺序查找、二分查找面试题21:调整数组顺序使得奇数位于偶数前面:辅助数组、双指针(交换)面试题39:数组中出现超过一半的数字:哈希表面试题40:最小的k个数:排序、优先队列面试题42:连续子数组的最大和:动态规划面试题45:把数组排成最小的数:全排列、贪心(函数对象)面试题51:数组中的逆序对:分治(归并排序)面试题

2021-08-16 22:01:20 85

原创 八大排序算法:思想、图解、C/C++代码

排序算法保持数字/记录的相对顺序,则该排序算法被称为稳定 ,即,如果您需要排序1 1 2 3,那么如果您不更改前两个1排序的顺序,则算法是稳定的。按键值对进行排序时,这种区别变得更加明显。假设您需要按照键的升序对以下键值对进行排序:INPUT: (4,5), (3,2), (4,3),(5,4) ,(6,4)OUTPUT1:(3,2), (4,5), (4,3),(5,4), (6,4) 稳定OUTPUT2:(3,2), (4,3), (4,5),(5,4), (6,4) 不.

2021-08-10 16:05:21 153

原创 vector

【代码】vector。

2024-03-06 16:10:59 107

原创 void指针

【代码】void指针。

2024-03-03 11:29:42 105 1

原创 C++ map用法

【代码】C++ map用法。

2024-03-03 11:26:10 192

原创 C语言读写文件、查找字符

【代码】C语言读写文件、查找字符。

2023-03-04 11:04:55 571

原创 取变量的地址

取变量的地址

2022-10-04 16:50:51 216

原创 获取数组长度(元素个数)

获取数组长度

2022-10-04 10:39:07 217

原创 局部变量与静态局部变量

静态局部变量

2022-10-04 10:20:29 113

原创 函数指针和const指针

函数指针和const指针

2022-10-03 21:51:59 206

原创 C语言实现队列(先进先出)

C语言实现队列(先进先出)

2022-08-05 20:45:48 1564

原创 verilog的非阻塞赋值、延拍和电路延时

1.时序电路使用非阻塞赋值,always块中的语句顺序无影响;2.d和out的新值在本次上升沿计算之后,下一次上升沿才会生效;3.实际电路中,下一次上升沿值生效时会有一定触发器延时(上一拍采数时,往左边偏一点采值)。......

2022-07-10 19:17:39 2063

原创 FPGA学习说明

FPGA学习说明

2022-07-02 22:40:19 80

原创 word标题段前断后设置都为6磅,标题段前无效

Word里标题段前距设置不管用,段后管用。将一级标题刷成统一的格式后,发现第二章和后面几章的大标题都出现离上面页眉特别近的情况。解决办法:需同时满足两个条件-1.勾选“段落-间距-如果定义了文档网格,则对齐网格”;2.勾选“布局-页面设置-文档网格-网格-指定行和字符网格”。...

2022-04-23 22:16:49 3197 3

原创 装饰器模式

装饰器模式适配器的特点在于兼容: 是将一个类(a)通过某种方式转换成另一个类(b);装饰器的特点在于增强: 在一个原有类(a)的基础之上增加了某些新功能变成另一个类(b);#include <iostream>//抽象组件角色:给出一个抽象接口,以规范准备接收附加责任的对象class Component{public: virtual ~Component(){} virtual void Configuration() = 0;};//具体组件类class

2021-09-26 15:21:02 46

原创 观察者模式

装饰器模式:允许向一个现有的对象添加新的功能,同时又不改变结构。属于结构型模式,作为现有类的一个包装。Python内置了这种设计模式。目的:动态地给一个对添加一些额外的职责,就增加功能来说,装饰器模式相比生成子类更加灵活。优点:装饰类和被装饰类是相互独立的,不会相互耦合;是继承的一个替代模式,装饰模式可以动态的扩展一个类的功能。缺点:多层装饰会变得越来越复杂。使用场景:扩展一个类的功能;动态增加功能,动态撤销。...

2021-09-26 15:10:17 65

原创 工厂设计模式

定义一个创建对象的接口,让子类决定实例化哪个类,而对象的创建统一交由工厂去生产,有良好的封装性,既做到了解耦,也保证了最少知识原则。1、简单工厂模式简单工厂模式是属于创建型模式,又叫做静态工厂方法(static Factory Method)模式,简单工厂模式是由一个工厂对象决定创建出来哪一种产品类的实例。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或接口)的实例。打个比方:假设有一个工厂,他能生产出A、B两种产品。当客户需要产品的时候一定要告

2021-09-26 12:06:36 62

原创 单例设计模式

单例模式一、这是最简单,也是最普遍的实现方式#include <iostream>#include<stdio.h>using namespace std;class Singleton{public: static Singleton *GetInstance() { if(m_Instance == NULL) { cout << "Create a Instance" <

2021-09-26 10:29:53 47

原创 两个集合取交集

#include<stdio.h>#define MAX1 5#define MAX2 4using namespace std;void display(int c[], int n)//遍历输出数组元素{ printf("\n"); for(int i = 0; i < n; i++) printf("%d ", c[i]); printf("\n");}void intersection(int a[],int n,int b[],int m)//求数组a

2021-09-17 09:36:14 345

原创 字符串循环右移

方法一:字符串遍历移动#include <iostream>#include <string>using namespace std;int main(){ string str; char temp; int n;//向右移动n位 cin >> str; cin >> n; int len = str.size(); for(int i = 0; i < n; i++)//每一轮向右

2021-09-13 11:51:14 454

原创 数字字符串的分割

必看:C语言strtok()分割函数详解#include <iostream>#include <string>#include <vector>#include <stdio.h> //sscanf()在C语言中包含在此头文件中#include <string.h> //strtok()在C语言中包含在此头文件中using namespace std;int main(){ string str; cout&

2021-09-09 10:59:28 1075

原创 字符串排序

给定n个字符串,请对n个字符串按照字典序排列。输入描述:输入第一行为一个正整数n(1≤n≤1000),下面n行为n个字符串(字符串长度≤100),字符串中只含有大小写字母。#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;int main(){ int n; while(cin >&gt

2021-09-09 09:59:53 88

原创 数组中最小的K个数

//最小的k个数#include <iostream>#include <vector>#include <algorithm>using namespace std;vector<int> GetLeastNumbers_Solution(vector<int> input, int k) { sort(input.begin(), input.end());//快速排序 int n = input.size();

2021-09-09 09:52:17 57

原创 反转一个单链表

题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题?题目解析设置三个节点pre、cur、next(1)每次查看cur节点是否为NULL,如果是,则结束循环,获得结果(2)如果cur节点不是...

2021-09-07 09:41:38 95

原创 MySQL内部联结和外部联结

联结:一条SQL语句从多张表中利用关联/联结条件(主键/外键)选择数据内联结和外联结内联结和外联结区别

2021-09-03 17:55:05 117

原创 STL-vector

#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ int i; vector<int> vi(2,9); cout << "size=" << vi.size() << endl; //size=2 cout << "capacity" <&

2021-09-02 22:15:01 50

转载 大数相乘C++

题目描述:计算一个小于100位的整数的平方,要求不能直接赋值给一个整数,然后直接平方(因为会溢出)。如输入157849568214569452,输出其平方值。输入描述:一个较长数字输出描述:该数的平方值思路:因为常规解法必定会溢出,所以只能以字符串的格式读入数字,然后用多项式乘法的思想解决这个问题。#include<iostream>#include<string>#include<vector>using namespace std;int main

2021-09-01 17:59:16 221

原创 结构体字节对齐

结构体字节对齐

2021-08-30 09:52:49 57

原创 数据库引擎

1.InnoDB支持事务-银行卡转账,支持4个事务隔离(ACID)级别行级锁定(更新时锁定当前行)读写阻塞与事务隔离级别相关既能缓存索引又能缓存数据支持外键InnoDB更消耗资源,读取速度没有MyISAM快InnoDB中存在着缓冲管理,通过缓冲池,将索引和数据全部缓存起来,加快查询的速度;对于InnoDB类型的表,其数据的物理组织形式是聚簇表。所有的数据按照主键来组织。数据和索引放在一块,都位于B+数的叶子节点上;2.MyISAM(MySQL默认)不支持事务表级锁定(更新时锁定整个表)

2021-08-29 21:34:09 56

原创 删除字符串中出现次数最少的字符

//思想:哈希表/*#include <iostream>#include <string>using namespace std;int main(){ int len , min; int a[26];//用于存储每个字符出现的次数 string str, temp; while(cin >> str)//输入多组数据 { for(int i = 0; i < 26; i++) .

2021-08-29 19:27:15 86

原创 进程调度算法

1.先到先服务(FCFS)算法规则:按照作业/进程到达的先后顺序提供服务。2.短作业/进程优先(SJF/SPF)算法规则:最短的作业/进程优先服务,最短指的是此作业/进程要求服务的时间最短。3.高响应比优先(HRRN)算法规则:每次调度时计算各个作业/进程的响应比=(等待时间+要求服务时间)/要求服务时间4.时间片轮询(RR,RoundRobin):算法思想:公平、轮流的为各个进程服务,让每个进程在一定时间间隔内都能得到响应。算法规则:按照各个进程达到就绪队列的顺序,轮流地让各个进程执行一

2021-08-29 16:34:31 398

原创 页面置换算法-LRU最近最久未使用

LRU:每次淘汰的页面时最近最久未使用的页面。

2021-08-27 15:05:38 1056

转载 买卖股票的最佳时机

给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。//遍历一遍数组,计算每次到当天为止的最小股票价格和最大利润。class Solution {public: int maxProfit(vector<int>& price

2021-08-26 20:35:29 37

原创 最长不含重复字符的子字符串

请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。思路:哈希表/*使用哈希表记录每个字符的下一个索引(value),关键字(key)是每个元素,然后尽量向右移动尾指针来拓展窗口,并更新窗口的最大长度。如果尾指针指向的元素重复(哈希表中已存在),则将头指针直接移动到窗口中重复元素的右侧。tail 指针向末尾方向移动;如果尾指针指向的元素已经存在于哈希表中: head 指针跳到重复字符的下一位;更新哈希表和窗口长度,保持最大。*/class Solutio

2021-08-26 19:33:31 51

原创 两数之和、三数之和

给定一个整数数组 nums[ ] 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。使用哈希表:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { map<i

2021-08-26 19:29:31 53

原创 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。//动态规划的空间复杂度是偏高的,我们再看一下双指针法。//取中心,然后向两边扩散看是不是对称的就可以了,中心可以是1个元素也可能2个//时间复杂度:O(n^2)//空间复杂度:O(1)class Solution {public: int left = 0; int right = 0; //left和right用于记录当前最长回文子串的两个端点 int maxLength = 0;//extend()函数并没有重新声明

2021-08-25 14:54:23 47

原创 杨辉三角形

给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。11 11 2 11 3 3 11 4 6 4 1class Solution {public: vector<vector<int>> generate(int numRows) { vector<vector<int>> res(numRows);//有numRows行数据

2021-08-25 11:19:32 80

原创 全排列-无重复元素的数组-有重复元素的数组

给定一个不含重复数字的数组 nums ,返回其所有可能的全排列 。你可以按任意顺序返回答案。//方法一:递归,不稳定//给定一个n个元素数组,其全排列的过程可以描述如下: //(1)任意取一个元素放在第一个位置,则有n种选择; //(2)再剩下的n-1个元素中再取一个元素放在第二个位置则有n-1种选择,//此时可以看做对n-1个元素进行全排列; //(3)重复第二步,每一轮都固定一个位置上新的数,直到对最后一个元素进行全排列,//即最后一个元素放在最后一个位置,全排列结束。class So

2021-08-25 10:42:30 531

空空如也

空空如也

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

TA关注的人

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