自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 蓝桥杯省赛 子串分值和 c++版

一维数组记忆化查询各子序列O(n2)#include <iostream>#include <cstring>using namespace std;int flag[26];int num;int main(){ string str; cin >> str; long long sum = 0; for(int i = 0; i < str.length(); ++i){ for(int j = i;

2020-10-17 20:25:20 1294 6

原创 4

终于来到了研究实验4这次的实验是看看不用main函数,能不能编写正确的程序,直接来试一试,果然报错了与之对应的是三个问题编译和连接哪个环节会出问题?显示出的错误信息是什么?这个错误信息可能与哪个文件相关?很显然,显示link环节出现问题,显示出的错误信息也很明了undefined symbol ‘__main’ in module COS 看出来和main函数有关,在之前安装环境时记得程序需要一个COS.obj文件才可以继续运行,所以猜想和这个文件有关接下来,使用之前的link对obj文件

2020-06-13 14:16:31 246

原创 realloc malloc calloc函数

malloc 在堆上分配内存,返回void*类型指针,但申请的空间内可能有之前的无用数据需要memset O(1)calloc 在堆上分配内存,和malloc基本相同,但之后要对申请的内存空间清0,相当于malloc + memset,O(n)realloc 相当于重新分配内存,把之前的数据搬到新内存中去一般在使用时均为malloc + memset,可读性好...

2020-04-13 23:59:24 133

原创 two_sum, three_sum的排序和非排序做法及优化

two_sum就是判断在给定数组里有无两元素之和等于给定元素值,代码简单易懂先来看two_sum的two_sum#include <iostream>#include <unordered_map>#include <vector>using namespace std;/*Sum Find a pair of two elements in ...

2020-04-13 12:29:55 173

原创 求数组中第k大的数,优化解法

当k不是很大时可以直接进行遍历数组,用临时变量保存数据示例:求数组中第二大的数O(n)解法#include <iostream>using namespace std;int two_rank(int* arr, int len){ int min = 0; int two_min = 0; if(len < 2)return -1; f...

2020-04-10 15:01:28 145

原创 斐波那契数列--递归和非递归写法

很简单,直接代码#include <iostream>// 递归int Fibonacci(int n){ if(n == 0){ return 0; }else if(n == 1){ return 1; } return Fibonacci(n - 1) + Fibonacci(n - 2);}// 非递...

2020-04-10 11:09:50 215

原创 c++菱形继承

类继承关系父类 子类classA------------->classBclassA------------->classCclassD------------->class B,Ccode:#include <iostream>using namespace std;class A{public: int dataA;};...

2020-04-10 09:19:06 118

原创 Linux 系统进程管理相关---top--ps--kill

ps -auxUSER:该进程是由哪个用户产生的PID:进程的ID号%CPU:该进程占用CPU资源百分比,占用越高,进程越耗费资源%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源VSZ:该进程占用虚拟内存的大小,单位kbRSS:该进程占用实际物理内存的大小,单位kbTTY:该进程再哪个终端中运行的STAT:进程状态 R:运行 S: 睡眠 T:停止 s:包含子进...

2020-04-08 10:42:38 218

原创 二分搜索递归与非递归形式

直接贴代码!#include <iostream>using namespace std;// 递归实现int binary_search(int* arr, int left, int right, int value){ if(left > right){ return -1; }else{ int mid = le...

2020-04-03 18:42:56 93

原创 链表相关的算法

@[TOC] 和链表有关的算法基本操作节点结构typedef struct{ int val; Node* next;}Node;查找操作Node* search(int val){ Node* pNode = root; // 根结点 while(pNode != nullptr) if(pNode->val == val){...

2020-03-24 18:05:57 125

原创 mysql高级---索引

mysql官方对索引的定义:索引(index) 是帮助mysql高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着某种特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储在磁盘上。索引是数据库中用来提高性能的最常用的工具....

2020-03-24 11:33:08 116

原创 c++用数组实现队列

队列(queue) 的特点:先进先出数组实现:array: 存放元素i: 下一个入队存放元素位置的下标j: 下一个出队删除元素位置的下表size: 队列的最大长度num: 队列中当前元素个数#include <iostream>using namespace std;template<typename T>class queue{ public...

2020-03-23 22:29:17 1818 1

原创 [编程题]微信红包 -- c++实现

春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。若没有金额超过总数的一半,返回0。测试样例:[1,2,3,2,2],5返回:2题目很容易理解,排序后遍历统计次数即可#includ...

2020-03-22 12:22:28 842

原创 生成格雷码--c++实现

题目描述在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。给定一个整数n,请返回n位的格雷码,顺序为从0开始。测试样例:1返回:[“0”,“1”]分析1、n=1时,返回0,12、n=2时,返回00,01,10,113、n=3时,返回000,001,010,011,100,101...

2020-03-22 11:44:45 1239 1

原创 c/c++里 #include<xxx> 和#include "xxx" 的区别

include "xxx.h"是用来引入非标准库的头文件,编译器从用户的工作目录开始搜索;过程如下:编译器从程序的源文件所在的目录中查找,若不存在该头文件,则再去系统默认的目录去找;#include:引用标准库头文件,编译器从标准库目录开始搜索;过程如下:编译器只在系统目录的目录或者括号内的路径进行查找;此外:#include的作用其实就是寻找后面文件,并将该文件的内容拷贝一份到当前的文件...

2020-03-22 08:52:51 196

原创 编译型语言和解释型语言的区别

解释系统不会去直接执行源程序,是会先生成一个易于执行的中间代码,然后再有专门的软件去执行这个中间代码编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较 方便、效率较高。 但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程...

2020-03-22 08:35:54 313

原创 http协议基础---简介、报文格式、状态码

HTTP报文格式2. URI 和 URLURI: 全称为统一资源标识符,使用它可以唯一标识互联网上资源,通常用一个紧凑的字符串用来标示抽象或物理资源URI 由 URL 和 URN 组成URL (Uniform Resource Locator) 是URI的子集,是我们俗称的网址,除了确定一个资源,还提供一张定位该资源的主要访问机制维基百科:URI可以分为URL、URN或同时具备loca...

2020-03-21 23:57:03 94

原创 二叉树的前序、中序、后序、层次遍历----递归和非递归版

递归遍历比较简单~前序遍历-递归void preOrderTraversal(TreeNode* root){ if(root == nullptr){ return; } visit(root); preOrderTraversal(root->left); preOrderTraversal(root->right);}前序-非递归遍历-借助辅助栈#inc...

2020-03-21 22:53:25 74

原创 文件系统

文件 ---就是一组有意义的信息/数据集合文件的属性文件名: 同一目录下不允许有重名文件标识符: 一个系统内的各文件表示符唯一,对用户来说无可读性,因此标识符只是操作系统用于区分各个文件的一种内部名称类型: 指明文件的类型位置: 文件存放的路径、在外存中的地址大小:创建时间、上次修改时间、文件所有者信息保护信息: 对文件进行保护的访问控制信息文件类型:无结构文件 如文本文件...

2020-03-21 21:48:17 137

原创 归并排序--递归和非递归版

归并排序–递归实现#include <iostream>using namespace std;int* a = new int[100];void Merge(int* arr, int left, int mid, int right){ for(int i = left; i < right; i++){ a[i] = arr[i]; } int i, j...

2020-03-21 16:52:28 80

原创 快速排序--递归和非递归实现

快速排序–递归版#include <iostream>using namespace std;int partition(int *arr, int left, int right){ int temp = arr[left]; while(left < right){ while(left<right && arr[right]>=te...

2020-03-21 15:26:19 97

原创 死锁

死锁、饥饿、死循环 概念死锁: 在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象,就是“死锁”发生死锁后若无外力干涉,这些进程都将无法向前推进饥饿: 由于长期得不到想要的资源,某进程无法向前推进的现象。比如:在短进程优先(SPF)算法中,若有源源不断的短进程到来,则长进程将一直得不到处理机,从而发生长进程“饥饿”死循环: 某进程执行过...

2020-03-21 12:01:00 162

原创 Linux 网络编程API(一):基础

Linux网络API主要分为三大类:socket地址APIsocket基础API网络信息APIsocket地址API大端字节序指一个整数的高位字节存储在内存的低地址处,低位字节存储在内存的高地址处,反之小端字节序指整数的高位字节存储在内存的高地址处,而低位字节则存储在内存的低地址处PC大多采用小端字节序,而网络字节序为大端字节序,解决方法为:发送端要把发送的数据转化成大端字节序数据后...

2020-02-27 16:42:36 137

空空如也

空空如也

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

TA关注的人

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