自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 python的字典

文章目录创建查询添加修改删除遍历set()来排重在字典中储存列表创建alien_0 = {}alien_0[‘color’] = ‘green’alien_0[‘points’] = 5alien_0 = {‘color’: ‘green’, ‘points’: 5, ‘age’ : 18}查询print(alien_0[‘color’])print(alien_0[‘points’])print(alien_0[‘age’])添加alien_0[‘x_position’] = 0a

2021-05-29 15:26:19 183

原创 vim教程

文章目录1.移动光标2.进入和退出3.删除4.插入5.撤销8.搜索类9.匹配括号的查找10.在 VIM 内执行外部命令的方法11.关于保存文件的更多信息12.一个具有选择性的保存命令13.一个具有选择性的保存命令15.设置类命令的选项16.获取帮助信息,创建启动脚本,补全功能在 shell 终端下输入命令 vimtutor 便可进入 Vim 官方提供的 30 分钟 Vim 入门教程1.移动光标左下上右: hjklnw:向后移动光标, 移动n个单词,移到单词开头ne:向后移动n个单词,移动到单词的开

2021-04-05 18:34:04 207

原创 cmake-检测处理器体系结构(32位或64位)

1.CPU是64位还是32位(CMAKE_SIZEOF_VOID_P)cmake_minimum_required(VERSION 3.5 FATAL_ERROR)project(requir-04 LANGUAGES CXX)add_executable(arch-dependent arch-dependent.cpp)if (CMKE_SIZEOF_VOID_P EQUAL 8) target_compile_definitions(arch-dependent PUBLIC "IS_6

2021-03-31 00:19:44 1241

原创 linux-mkdir

Linux mkdir(英文全拼:make directory)命令用于创建目录。参数说明:mkdir [-p] dirName参数说明:-p 确保目录名称存在,不存在的就建一个。实例在工作目录下,建立一个名为 runoob 的子目录 :mkdir runoob在工作目录下的 runoob2 目录中,建立一个名为 test 的子目录。若 runoob2 目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 runoob2 目录不存在,则产生错误。)mkdir -p runoo

2021-03-30 23:03:39 162

原创 anaconda安装和使用

1.1 下载安装脚本:wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh1.2 运行安装向导:bash Anaconda3-5.2.0-Linux-x86_64.sh1.3 确认是否安装成功:conda --version如果报错:conda:未找到命令则修改环境变量vim ~/.bashrc在最后添加:export PATH=~/anaconda3/bin:$PATH重启环境变量:sourc

2021-03-25 13:20:48 113 1

原创 算法库-二分查找操作

文章目录lower-bound --- 返回指向第一个不小于给定值的元素的迭代器(>= x)upper_bound --- 返回指向第一个大于给定值的元素的迭代器( > x)binary_search --- 确定元素是否存在于某范围中equal_range --- 返回匹配特定键值的元素范围c++20定义于头文件 < algorithm >lower-bound — 返回指向第一个不小于给定值的元素的迭代器(>= x)template< class Forwar

2021-03-04 20:41:36 123 1

原创 算法库-排序操作

文章目录is_sorted --- 检查范围是否已按升序排列partial_sort --- 排序一个范围的前 N 个元素partial_sort_copy --- 对范围内的元素进行复制并部分排序stable_sort --- 将范围内的元素排序,同时保持相等的元素之间的顺序运行效果nth_element -- 将给定的范围部分排序,确保其按给定元素划分头文件:is_sorted — 检查范围是否已按升序排列template< class ExecutionPolicy, class Forw

2021-03-04 19:15:02 145 1

原创 拓扑排序

时间复杂度O(n+m)O(n + m)O(n+m)#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<queue>#include <stack>#include<vector>using namespace std;struct edge { int e, next;};class T

2021-03-01 13:37:46 49

原创 二分查找

一.1, 2, 3, 4, 5, 6找5int binary_search(vector<int> &nums, int x) { int l = 0, r = nums.size() - 1; while(l <=r ) { int mid = l + (r - l) / 2; if (func(mid) == mid) return mid; if (func(mid) < x) l = mid + 1; else r = mid - 1; }

2021-02-28 21:39:45 48

原创 算法-图

简单的图1.可能到达所有点的最小值class Solution {public: vector<int> findSmallestSetOfVertices(int n, vector<vector<int>>& edges) { vector<int> temp(n + 1, 0); for(int i = 0; i < edges.size(); ++i) { ++temp

2021-02-23 12:17:20 94

原创 计算机网络面试参考题

文章目录搜索baidu,会用到计算机网络中的什么层?每层是干什么的.TCP和UDP的区别和各自适用的场景TCP和UDP区别请你说一下TCP怎么保证可靠性.请说一说TCP拥塞控制, 以及达到什么情况的时候开始减慢增长的速度?TCP建立连接和断开连接的过程(三次握手和四次挥手), 及原因, 为什么不两次握手, 或四次握手?GET和POST的区别请问你有没有基于做过socket的开发?具体网络层的操作该怎么做?(其实也是问网络编程的基本步骤)请你讲述一下Socket编程的send() recv() accept(

2021-02-19 09:57:59 176

原创 操作系统常考面试题整理

文章目录进程和线程的定义进程和线程的区别?有了进程为什么还要线程?进程和线程的通信进程间通信的方式:1.管道:1.1 普通管道PIPE:1.2 命名管道FIFO:2. 系统IPC:2.1 消息队列2.2 信号量semaphore2.3 信号signal2.4 共享内存(Shared Memory)3.套接字SOCKET:线程间通信的方式:fork僵尸进程,孤儿进程,守护进程#线程与进程进程和线程的定义定义进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进

2021-02-17 17:28:34 820

原创 c++关键字

autoauto(自动,automatic)是存储类型标识符,表明变量"自动"具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型boolbool(布尔)类型,C++ 中的基本数据结构,其值可选为 true(真)或者 false(假)。C++ 中的 bool 类型可以和 int 混用,具体来说就是 0 代表 false,非 0 代表 true。bool 类型常用于条件判断和函数返回值。explicitexplicit(显式的)的作用是"禁止单参数构造函数"被用于自动型

2021-02-13 21:44:55 833

原创 递归实现枚举

文章目录递归实现指数型枚举递归实现组合型枚举递归实现排列型枚举递归实现指数型枚举题目​ 从 1−n 这 n 个整数中随机选取任意多个,每种方案里的数从小到大排列,按字典序输出所有可能的选择方案。输入​ 输入一个整数 n。(1≤n≤10)输出​ 每行一组方案,每组方案中两个数之间用空格分隔。​ 注意每行最后一个数后没有空格。样例输入3样例输出11 21 2 31 322 33#include<iostream>using namespace std;

2021-02-09 17:25:05 320

原创 c++对c的增强

1.全局变量的检测增强,c++检测除重定义2.函数检测的增强, 检测出返回值类型检测, 形参数类型检测, 函数调用参数个数.3.类型转换检测增强: char *p = (char *)malloc(64);, c++必须左右类型一致4.struct的增强, c++的结构体可以有函数.c++创建结构体可以简化关键字struct.5.bool类形的扩展,c没有bool类型, c++有6.三目运算符的增强.c:int a = 10;int b = 20;prinf("%d\n", a >

2021-02-09 12:54:52 153

原创 最大/最小操作

iota头文件< numeric >用从起始值开始连续递增的值填充一个范围函数void iota( ForwardIt first, ForwardIt last, T value );以始于 value 并重复地求值 ++value 的顺序递增值填充范围 [first, last) 。代码演示#include<iostream>#include<vector>#include<cstdio>#include<string>

2021-02-09 11:03:43 409 1

原创 算法库-排列操作

is_permutation()判断一个序列是否为另一个序列的排列头文件< algorithm >函数constexpr bool is_permutation( ForwardIt1 first1, ForwardIt1 last1,ForwardIt2 first2, ForwardIt2 last2 );若存在范围 [first1, last1) 中元素的排列,使得该范围等于 [first2,last2) ,则返回 true ,若不给出,则其中 last2 代表 first

2021-02-09 09:19:42 106

原创 优先队列priority_queue

template <typename T, typename Container=std::vector<T>, typename Compare=std::less<T> >class priority_queue{ //......}可以看到,priority_queue 容器适配器模板类最多可以传入 3 个参数,它们各自的含义如下:typename T:指定存储元素的具体类型;typename Container:

2021-02-08 22:22:17 564

原创 queue

其实,STL queue 容器适配器模拟的就是队列这种存储结构,因此对于任何需要用队列进行处理的序列来说,使用 queue 容器适配器都是好的选择#include <queue>using namespace std;成员函数功能empty()如果 queue 中没有元素的话,返回 true。size()返回 queue 中元素的个数。front()返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为

2021-02-08 21:52:52 73

原创 stack

#include <stack>using namespace std;创建一个不包含任何元素的 stack 适配器,并采用默认的 deque 基础容器:std::stack<int> values;表 1 stack容器适配器支持的成员函数成员函数功能empty()当 stack 栈中没有元素时,该成员函数返回 true;反之,返回 false。size()返回 stack 栈中存储元素的个数。top()返回一个栈顶元素的引用

2021-02-08 21:44:52 176 1

原创 2021-02-07

#include<iostream>#include<vector>#include <set>#include<cstdio>#include<string>using namespace std;set<string> initSet() { set<string> myset{"11", "22", "33"}; return myset;}void output(set<s.

2021-02-07 16:56:57 73

原创 map

作为关联式容器的一种,map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。其中,各个键值对的键和值可以是任意数据类型,包括 C++ 基本数据类型(int、double 等)、使用结构体或类自定义的类型。通常情况下,map 容器中存储的各个键值对都选用 string 字符串作为键的类型。与此同时,在使用 map 容器存储多个键值对时,该容器会自动根据各键值对的键的大小,按照既定的规则进行排序。默认情况下,map 容器选用std::less排序规则(其中 T 表示键的数据类型),

2021-02-07 15:51:27 162

原创 pair

考虑到“键值对”并不是普通类型数据,C++ STL 标准库提供了 pair 类模板,其专门用来将 2 个普通元素 first 和 second(可以是 C++ 基本数据类型、结构体、类自定的类型)创建成一个新元素<first, second>。通过其构成的元素格式不难看出,使用 pair 类模板来创建“键值对”形式的元素,再合适不过。注意,pair 类模板定义在**< utility >** 头文件中,所以在使用该类模板之前,需引入此头文件。另外值得一提的是,在 C++ 11 标准

2021-02-07 09:59:20 83

原创 STL-容器库

vector可改变大小数组.支持快速随机访问.在尾部之外的位置插入和删除会很慢.stringarraydequelistforward_list

2021-02-07 00:08:02 105

原创 forward_list

forward_list 容器具有和 list 容器相同的特性,即擅长在序列的任何位置进行插入元素或删除元素的操作,但对于访问存储的元素,没有其它容器(如 array、vector)的效率高。另外,由于单链表没有双向链表那样灵活,因此相比 list 容器,forward_list 容器的功能受到了很多限制。比如,由于单链表只能从前向后遍历,而不支持反向遍历,因此 forward_list 容器只提供前向迭代器,而不是双向迭代器。这意味着,forward_list 容器不具有 rbegin()、rend()

2021-02-07 00:03:37 1637

原创 array

array 容器是 C++ 11 标准中新增的序列容器,简单地理解,它就是在 C++ 普通数组的基础上,添加了一些成员函数和全局函数。在使用上,它比普通数组更安全(原因后续会讲),且效率并没有因此变差。和其它容器不同,array 容器的大小是固定的,无法动态的扩展或收缩,这也就意味着,在使用该容器的过程无法借由增加或移除元素而改变其大小,它只允许访问或者替换存储的元素。array 容器以类模板的形式定义在 头文件,并位于命名空间 std 中初始化std::array<double, 10&g

2021-02-06 23:54:17 615

原创 list

STL list 容器,又称双向链表容器,即该容器的底层是以双向链表的形式实现的。这意味着,list 容器中的元素可以分散存储在内存空间里,而不是必须存储在一整块连续的内存空间中。可以看到,list 容器中各个元素的前后顺序是靠指针来维系的,每个元素都配备了 2 个指针,分别指向它的前一个元素和后一个元素。其中第一个元素的前向指针总为 null,因为它前面没有元素;同样,尾部元素的后向指针也总为 null。基于这样的存储结构,list 容器具有一些其它容器(array、vector 和 deque)所不

2021-02-06 23:26:47 105

原创 deque

eque 是 double-ended queue 的缩写,又称双端队列容器。前面章节中,我们已经系统学习了 vector 容器,值得一提的是,deque 容器和 vecotr 容器有很多相似之处,比如:deque 容器也擅长在序列尾部添加或删除元素(时间复杂度为O(1)),而不擅长在序列中间添加或删除元素。deque 容器也可以根据需要修改自身的容量和大小。和 vector 不同的是,deque 还擅长在序列头部添加或删除元素,所耗费的时间复杂度也为常数阶O(1)。并且更重要的一点是,deque

2021-02-06 22:10:21 594

原创 vector

文章目录empty()sizemax_sizeresizeinsertcapacity()empty()函数bool empty()功能检查容器是否无元素,即是否 begin() == end() 。参数(无)返回值若容器为空则为 true ,否则为 falsesize返回容纳的元素数max_size返回可容纳的最大元素数resize功能: 改变容器中可存储元素的个数 .重设容器大小以容纳 count 个元素。若当前大小大于 count ,则减小容器为其首 count 个元

2021-02-06 19:46:27 273

原创 字符串匹配算法

定义:在母串s中寻找是否有t 这个子串母串s: a e c a e a e c a e d模板串t: a e c a e d暴力匹配思路将字符串s和字符串t进行匹配,一旦有失配字符,就将字符串t后移, 然后重新匹配,不断重复,直到匹配成功.代码实现int violen_match(const char *s, const char *t) { for (int i = 0; s[i]; i++) { int flag = 1; for (int

2021-02-03 22:45:59 405

原创 找n 个数之和为S的n个数

文章目录两个数是s的数三个数是s的数四个数是s的数两个数是s的数题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。思路:找两个数a和b, a 是首元素, b是尾部元素.如果a + b = target, 那么num1, num2便找到了, 如果a + b < target, a 往后移, 再a + b; 如果a + b > target, 那么就往前移, 再a + b.不断重复, 直至找到.如果a的下标和b

2021-02-02 10:31:15 1099

原创 数字出现的次数

文章目录1.一个长度为n的数组,只有一个数字出现了一次,其余数字均出现了两次,请找到出现一次的这个数字2.一个长度为n的数组,只有两个数字出现了一次,其余数字均出现了两次,请找到出现一次的这两个数字思路3.在一个长度为n的数组里的所有数字都在0~n - 1范围内,已知只有一个数字出现了两次,其余数字出现了一次,如何找到这个出现两次的数字,分析时间复杂度.4.在一个长度为n + 1的数组里的所有数字都在1~n范围内,已知只有一个数字出现了两次,其余数字出现了一次,如何找到这个出现两次的数字,不能修改输入的数组

2021-02-01 18:57:33 568

原创 open()和fopen()以及popen

open #includ e <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode) int creat(const char *pathname, mode_t mode);open () 后可

2021-01-31 11:26:55 962

原创 python的文件

1.文本文件的写入open()函数用于创建文件对象,基本语法格式如下:open(文件名,打开方式)如果只是文件名,代表在当前目录下的文件。文件名可以录入全路径,比如:D:\a\b.txt。打开方式有如下几种:模式描述r读 read 模式w写 write 模式。如果文件不存在则创建;如果文件存在,则重写新内容a追加 append 模式。如果文件不存在则创建;如果文件存在,则在文件末尾追加内容b二进制 binary 模式(可与其他模式组合使用)+读

2021-01-29 23:20:47 66

原创 python的循环

1.Python 提供了三元运算符,用来在某些简单双分支赋值情况。三元条件运算符语法格式如下:条件为真时的值 if (条件表达式) else 条件为假时的值2.if elif elifelse for 循环通常用于可迭代对象的遍历。for 循环的语法格式如下:for 变量 in 可迭代对象:循环体语句4.range 对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:range(start, end [,step])生成的数值序列从 start 开始到 end 结束(

2021-01-29 12:30:26 68

原创 python的列表list

列表:用于存储任意数目、任意类型的数据集合方法要点描述list.append(x)增加元素将元素 x 增加到列表 list 尾部list.extend(aList)增加元素将列表 alist 所有元素加到列表 list 尾部list.insert(index,x)增加元素在列表 list 指定位置 index 处插入元素 xlist.remove(x)删除元素在列表 list 中删除首次出现的指定元素 xlist.pop([index])删除

2021-01-28 10:03:57 413 1

原创 python字符串

文章目录replace:slicesplit()join字符串的驻留和比较字符串比较和同一性成员操作符查找strip():去除首尾信息大小写转换格式排版判断format填充与对齐填充数字格式化可变字符串replace:字符串不可改变的会报错, 但是可以tihuan>>> a = 'hi girl, I am zy'>>> a[1]='o'Traceback (most recent call last): File "<stdin>", line

2021-01-28 00:04:35 143

原创 树状数组

树状数组lowbit 函数求数字 i,二进制表示中的最低1所在的位权lowbit(x) = x & -x树状数组本质上是对前缀和数组的一种优化,主要体现在单点修改操作上前缀和查询 O(logn)O(logn)O(logn),单点修改O(logn)O(logn)O(logn)相比于最普通的前缀和数组,查询方面变差,单点修改操作变好,综合时间复杂度变好查询的时候,向前统计,iii 的前一位 i−lowbit(i)i-lowbit(i)i−lowbit(i)修改的时候,向后修改,iii 的

2021-01-15 14:14:11 125

原创 单调队列和单调栈

文章目录数据结构题目描述代码实现单调队列单调栈数据结构题目描述创建一种结构,完成下列五种功能:I x 在当前位置插入 x 元素;D 删除当前位置的元素;L 将当前位置左移一位,除非它已经是第一个元素;R 将当前位置右移一位,除非它已经是最后一个元素;Q k 在当前位置之前,找到一个最大的 Si(1≤i≤k,Si=a1+a2+…+ai)代码实现#include #include #include #include #include #include #include #inc

2021-01-14 18:42:31 76

原创 动态规划

动态规划1. 切割回文题目描述给出一个字符串S,问对字符串S最少切几刀,使得分成的每一部分都是一个回文串(注意:单一字符是回文串)状态定义dp[i]dp[i]dp[i]代表去字符串的前i位,最少分成多少段的回文串.状态转移dp[i]=min(dp[j])+1 ∣s[j+1,i] is palindromedp[i] = min(dp[j])+ 1\ | s[j + 1, i]\ is \ palindromedp[i]=min(dp[j])+1 ∣s[

2021-01-14 13:55:47 66

空空如也

空空如也

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

TA关注的人

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