自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库---索引,事务

2020-06-26 22:33:28 219

原创 数据库简单知识

2020-06-23 22:56:42 185

原创 高级IO 3

2020-06-23 16:41:31 191

原创 秋招准备3

浅谈static与extern区别

2020-06-23 16:41:25 130

原创 计算一个数字二进制位有多少个1

#include<iostream>#include<string>#include<vector>using namespace std;int main(){ int a; cin>>a; int count = 0; while(a) { if(a & 1 == 1)...

2020-06-23 16:41:19 220

原创 秋招准备2

2020-06-23 16:40:51 105

原创 秋招准备1

为什么选择deque作为stack和queue的底层默认容器?首先要知道,stack是一种后进先出的特殊线性数据结构,因此只要具有push_back()和pop_back()操作的线性结构,都可 以作为stack的底层容器,比如vector和list都可以;queue是先进先出的特殊线性数据结构,只要具有 push_back和pop_front操作的线性结构,都可以作为queue的底层容器,比如list。但是STL中对stack和 queue默认选择deque作为其底层容器,主要是因为:stack和q

2020-06-23 16:40:45 129

原创 C++11线程库

C++11提供的线程库的好处:可以跨平台 + 提供了原子类型的变量C++11中最重要的特性就是对线程进行了支持,是的C++在并行编程时不需要依赖第三方库,而且 在原子操作中还引入了原子类的概念,要使用标准库中的线程,必须包含< thread >头文件。注意:1.线程是操作系统中的一个概念,线程对象可以关联一个线程,用来控制线程以及获取线程的状态。2.当创建一个宣传对象后,没有提供线程函数,该对象实际没有对应任何线程3.当创建一个线程后,并且给线程关联线程函数,该线程函数就被启动,与主

2020-06-23 16:40:40 499

原创 lambda表达式

我们要对一个数组进行排序的话一般使用的是,sort这个算法,使用的时候要包含#include < algorithm>头文件vector<int> vec = {7,4,1,8,5,2,0,9,6,3};sort(vec.begin(),vec.end());//上述的默认是升序排序假如你要使用的是降序的话sort(vec.begin(),vec.end(),greater<int>());假如现在是自定义类型的数据在C++11之前我们可以通过仿函数,自

2020-06-23 16:40:34 211

原创 右值引用

右值引用:引用(C++98):别名,引用变量与其引用的实体公用同一块内存空间引用的底层实现原理:就是按照指针的方式实现的在C++中: 需要用到一级指针---->可以使用引用来代替需要用到二级指针---->可以使用一级指针的引用来代替在C++中,如果是自定义类型的参数,在传参时尽量使用引用来进行传递如果想要通过形参改变外部实参---->T&如果不想通过形参改变外部实参---->const T&引用的性质 引用作为函数参数 引用作为函数的返回值(

2020-06-23 16:40:27 712

原创 C++11

CSV文件的操作map和unordered_map的区别?共同点:都是C++标准库提供的关联式容器,即里面放的元素都是K-V键值对,要求key是不能重复的。给出的时间:map是在C++98中已经存在,unordered_map是在C++11中才给出的应用:1.包含的头文件2.应用的场景只要不关心是个否有序,那么就直接使用unordered_map接口不同,接口的实现原理不同,一个是红黑树,一个是哈希桶哈希的基本实现与缺点:map的迭代器可以双向移动,–>按照中序遍历的方式进行

2020-06-23 16:40:18 208

原创 红黑树,关联式容器的异同

在学习红黑树之前先看这篇文章红黑树和2-3树之间的联系红黑树:是一颗平衡二叉搜索树,给书中的结点增加颜色(红色和黑色) + 红黑树性质的限制保证:最长路径中结点个数不会超过最短路径中结点个数的两倍不像AVL树觉得平衡红黑树是一颗近似平衡的二叉搜索树---->时间复杂度:O(logN)大量的应用表明:红黑树的性质比AVL树的性能好,并且实现起来也比红黑树简单一些,所以在很多地方我们使用的其实是红黑树**红黑树的概念:**红黑树,是一种二叉搜索树,但在每个节点上增加一个存储位表示节点的颜色,

2020-06-23 16:40:11 96

原创 布隆过滤器

上面这个方法可以找出一定的交集,但是会存在一定的误差,这是因为,不同的query查询记录有可能会算出相同的整形数据,然后会影响最终的结果准确的方法:布隆过滤器这里就不介绍了,之前的和左神一起练算法里面已经介绍过了。...

2020-06-23 16:40:06 82

原创 在线oj项目

在线oj项目分析:想法很简单就是实现一个类似于牛客和力扣那样的在线编程系统。这个系统主要是通过浏览器来实现客户端和服务器端的应答,在网络上进行数据的传输。服务端和客户端交互流程:上图是服务端和客户端进行交互的基本的流程,接着我们再对整个程序的服务端进行细致的划分,和各个模块的分析。服务端模块划分:服务器模块主要由oj_sever这一个模块来实现和客户端的交互的,背后负责支持的四个模块是,试题模块:试题存储在服务器,当用户点击图标进行获取的时候我们再将试题的详细内容进行返回编译运行模块:主

2020-06-23 16:39:33 2032

原创 典型IO 4

epoll典型IO 3这篇介绍多路复用IO的文章也很不错设置阻塞的常见方式

2020-06-23 16:39:28 157

原创 典型IO 2

典型IO 1

2020-06-23 16:39:21 173

原创 典型IO 1

四种典型的IO模型有(阻塞IO,非阻塞IO,信号驱动IO,异步IO) + 多路转接IO模型(select,poll,epoll)IO的过程: IO是缩写,全写是(input & output)也就是输入输出,IO操作主要指的就是读写操作。IO的过程分为: 1. 等待IO就绪(也就是在发起IO请求之后,要等待IO就绪),可能是读也可能是写 1.1. 读:想要读取的数据已经准备好了,可以读取数据了(revefrom) 1.2. 写:想要写数据的空间已经准备好了,可以写数据了(sendto)

2020-06-23 16:39:15 240

原创 LT---数据库1

数据库主要就是为了数据的持久化存储。数据库基本知识介绍:数据库的配置文件在/etc/my.cnfcd到这个里面可以看到接着是进入:接着会发现刚才使用create database 命令创建的库所以刚才说的库就是文件夹,库下面的表就是文件drop删除alter修改...

2020-06-23 16:25:38 167

原创 动归---2

01背包问题字符串切割:另一种简单的写法:上面的代码时间复杂度是O(n^3),主要问题是在判断是否回文的位置,可能需要反复判断,这里就会使时间复杂度很搞,所以我们可以采用空间换时间的方式,使用二维数组,提前将每两个位置之间是否是回文串来保存起来,这样的话,在判断是否是回文串的时候直接查看矩阵就可以了。...

2020-06-23 16:25:19 94

原创 动归 --- 1

void func4(vector<vector<int>>& vec){ int row = vec.size(); int col = vec[0].size(); vector<vector<int>> Path(row ,vector<int>(col,0)); for (int i = 0; i < row; ++i) { if (vec[i][0] != 1) Path[i][0] ...

2020-06-23 16:25:10 118

原创 搜索---1

2020-06-23 16:25:00 85

原创 搜索---2

#include<iostream>#include<string>#include<vector>using namespace std;int pos[4][2] = { { -1, 0 }, { 0, -1 }, { 1, 0 }, { 0, 1 } };//grid:提供的矩阵//row:矩阵有多少行//col:矩阵有多少列//visited:标记矩阵//curx:正在处理的点的横坐标//cury:正在处理的点的纵坐标void dfs(ve.

2020-06-23 16:24:51 131

原创 关联式容器,海量数据问题,位图

C++11底层是哈希结构的关联式容器?什么是关联式容器?KV模型,或者K模型给一个文件:存储IP地址,找出出现次数对做的前K条IP地址,也就是top k问题1.统计每个ip地址出现的次数-----><IP,出现次数>键值对2.优先级队列创建的是小堆。...

2020-06-23 16:24:38 88

原创 哈希简单介绍,以及如何解决哈希冲突

关联式容器:map,set,mutil_map,mutil_set,unordered_map,unordered_set,搜索:静态搜索场景:一个序列的数据顺序查找----for遍历----->o(n)二分查找---->要求:带查找的数据必须是有序的—>o(logN).要求是数据必须是有序的动态搜索二叉搜索树—在插入删除之后会自动进行调整—>但是如果插入的元素接近有序的话那么就会形成单支树,所以平均时间复杂度就是1/2n,所以时间复杂度就是O(N)AVL:二叉搜索树

2020-06-23 16:24:21 1220

原创 字符的所有组合

首先是打印一个字母的情况 //一个字母 for (int i = 0; i < s.size(); ++i) { cout << s[i] << endl; }打印两个//两个字母 for (int i = 0; i < s.size(); ++i) { string w = ""; w += s[i]; int cou...

2020-04-20 16:05:19 340

原创 0-1背包问题

主要是这里的递归公式,用括号括起来的就是#include<iostream>#include<vector>using namespace std;int B[6][21] = { 0 };int W[6] = { 0, 2, 3, 4, 5, 9 };int V[6] = { 0, 3, 4, 5, 8, 10 };void func(){ for...

2020-03-21 00:44:08 106

原创 字符个数统计,字符颠倒,反转句子,字符排序

#include<iostream>#include<string>#include<vector>using namespace std;int main(){ string s; getline(cin,s); int count = 0; int ch[256] = {0}; for(int i = 0;...

2020-03-09 19:05:39 178

原创 质数因子,取近似值,合并表记录,提取不重复整数

#include<iostream>#include<string>#include<vector>using namespace std;int main(){ long long a; int s; while (cin >> a) { for (int i = 2; i <= a; ++i) { whil...

2020-03-09 15:55:36 112

转载 长短连接和长短轮询

https://www.jianshu.com/p/3fc3646fad80?from=message&isappinstalled=0

2020-02-24 04:17:22 100

转载 软硬链接

软硬链接

2020-02-12 01:39:08 74

原创 力扣581. 最短无序连续子数组;力扣150. 逆波兰表达式求值

class Solution {public: int findUnsortedSubarray(vector<int>& nums) { vector<int> vec(nums.begin(),nums.end()); sort(vec.begin(),vec.end()); int i = 0; ...

2020-01-29 21:56:41 142

原创 力扣125. 验证回文串;力扣443. 压缩字符串

class Solution {public: bool isPalindrome(string s) { if (s.size() == 0) return true; size_t size = s.size(); int i = 0; int j = size - 1; int flag = 0; while (i <= j) { w...

2020-01-29 21:51:44 161

原创 力扣8. 字符串转换整数 (atoi);力扣34. 在排序数组中查找元素的第一个和最后一个位置

class Solution {public: int myAtoi(string str) { size_t size = str.size(); int flag = 0; int i = 0; while (i < size) { if (str[i] == ' ') ++i; else if (str[i] == '+' || str[i] == ...

2020-01-29 21:17:44 167

原创 力扣1. 两数之和;力扣67. 二进制求和

class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> vec; multimap<int, int> mmap; for (int i = 0; i < nums.size()...

2020-01-28 20:56:39 151

原创 力扣66. 加一;力扣414. 第三大的数

class Solution {public: vector<int> plusOne(vector<int>& digits) { vector<int> vec; int flag = 0; int i = digits.size() - 1; vec.resize(digi...

2020-01-28 20:54:09 132

原创 力扣905. 按奇偶排序数组;力扣724. 寻找数组的中心索引

class Solution {public: vector<int> sortArrayByParity(vector<int>& A) { int i = 0; int j = A.size() - 1; while(i < j) { if(A[i] % 2...

2020-01-27 19:15:24 140

原创 力扣977. 有序数组的平方;力扣917. 仅仅反转字母

class Solution {public: vector<int> sortedSquares(vector<int>& A) { size_t size = A.size(); for(int i = 0; i < size; ++i) { A[i] = abs(A[i]...

2020-01-27 17:27:59 298

原创 力扣217. 存在重复元素;力扣925. 长按键入

class Solution {public: bool containsDuplicate(vector<int>& nums) { set<int> sset; for (int i = 0; i < nums.size(); ++i) { auto it = sset.insert(nums[i]); if (it.second...

2020-01-27 14:15:25 285

原创 力扣58: 最后一个单词的长度;力扣88: 合并两个有序数组

class Solution {public: int lengthOfLastWord(string s) { if (s.size() == 0) return 0; int count = 0; int i = s.size() - 1; while (i >= 0 && s[i] == ' ') ...

2020-01-27 14:08:09 91

原创 力扣383: 赎金信;力扣9:回文数

class Solution {public: bool canConstruct(string ransomNote, string magazine) { multiset<char> sset; for (int i = 0; i < magazine.size(); ++i) { sset.insert(magazine[i]); } ...

2020-01-27 14:05:34 178

空空如也

空空如也

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

TA关注的人

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