自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【C++】找出最长回文串

找出最长回文串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”代码演示//第一种方式,暴力破解 [O(n3)]string longestPalindrome(string s) { i...

2019-03-30 23:45:06 3357 1

原创 【C++】找出最小差

找出最小差给出一个整型数字,求出这个数字与斐波那契数列中各项元素的最小差值(差值为绝对值)示例:输入:15输出:2理由:菲波那切数列第一个元素默认为0,第二个元素默认为1,则后面的元素都为前两项元素之和:0 1 1 2 3 5 8 13 21 …… 以此类推在斐波那契各项元素 和15的做差分别为:15 14 14 13 10 7 2 6 …… 以此类推其中和13的差值最小为2...

2019-03-30 23:43:55 1569

原创 【C++】找出最大和

找出最大和定义一个字符串常量,字符串中只出现大小写字母和整数,输出字符串中的出现最多的数字的和?例如:> 输入:“9fi3dj11P0jAsf11j”> 输出:22> 因为字符串中出现最多的是两次11代码演示 //第一种方式,常规做法 int getSum(const char* str, int len) { v...

2019-03-25 18:06:50 648

原创 【C++】练习2

#include <iostream>#include <queue>#include <vector>#include <stack>#include <deque>#include <math.h>#include <time.h>using namespace std;class Func...

2019-03-14 14:11:53 153

转载 【技术篇】const的用法

在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。 在 const成员函数中,this的类型是一个指向 const类类型对象的 const指针。既不能改变 this所指向的对象,也不能改变 this所保存的地址。 const可以修饰函数的参数、返回值,甚至...

2019-03-03 16:38:34 249

原创 【C++】STL库--1

MyVector.h#ifndef MYVECTOR_H#define MYVECTOR_H#include <iostream>#include <vector>#include "Miterator.h"using namespace std;template <class Type>class MyVector{private:...

2019-03-02 14:57:48 119

原创 【C++】练习3

题目描述:1:你和你的朋友,两个人一起玩Nim游戏:桌子上有一堆石头,每次你们轮流拿掉1-3块石头,拿掉最后一块石头的人就是获胜者,你作为先手。【你们都是聪明人,没哟不都是最优解。编写一个函数来判断你是否可以在给定石头的数量的情况下赢得游戏】2:桌子上有n个灯泡,他们只有开和关两个状态,初始状态都是关闭状态,每按一下灯泡状态改变一次,每i【i= 1,2,3,……,n】趟隔i个灯泡按一下。...

2019-01-17 15:43:04 351

原创 【C++】找出数组只出现一次的数字

题目描述: 有一个数组,里面的元素只有一个只出现了一次,剩下的都是成对出现,请找出这个数。代码展示:class Function{public: int FindOne(int* arr, int len) { int tmp = -1; if (arr == NULL || len == 0) { cout << "error!" &lt...

2019-01-16 22:03:40 1375

原创 【C++】两数之和

一、题目描述: 给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。可以假设除了数字 0 之外,这两个数都不会以 0开头。二、示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输...

2019-01-14 21:17:02 1865

原创 【C++】多态继承相关面试题

一、相关概念 类的编译顺序:类名-》成员名-》成员方法体 类的构造顺序:成员对象-》类对象 子类的构造:父类-》子类 子类的析构:子类-》父类 重载:函数名相同 参数列表不同 作用域相同 隐藏:子类隐藏父类中同名的成员方法 覆盖:子类覆盖父类中相同的许成员方法 动多态:继承中的多态 运行时期决定的多态 静多态:模板 ...

2019-01-13 22:28:14 543

转载 【技术篇】智能指针

什么是智能指针? 智能指针是一个类,这个类的构造函数中传入一个指针,析构函数中释放传入的指针。智能指针都是栈上那个的对象,所以当函数(或程序)结束时都会被自动释放。为什么要使用智能指针?在堆区申请空间往往会遇到以下问题:1、内存被不正确的释放,例如下代码:void fun(int *p){ *p = 5; cout << *p <...

2019-01-12 18:40:18 158

转载 【技术篇】C++ 多态的实现及原理

C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数 1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚...

2019-01-12 18:32:12 151

原创 【C++】求第K中排序

题目描述:给出集合[1,2,3,…,n],其所有元素共有n! 种排列。按大小顺序列出所有排列情况,并一一标记,当n = 3 时, 所有排列如下:"123" "132" "213" "231" "312" "321"给定n 和k,返回第k个排列。说明:给定 n的范围是 [1, 9]。 给定 k的范围是[1, n!]。示例1:输入: n ...

2019-01-05 21:55:45 484

原创 【算法】找出数组中第一大和第二大的两个数

void sort(int* arr, int n){ int max = arr[0]; int next_max = arr[1]; for (int i = 1; i < n; i++) { if (arr[i] > max) { next_max = max; max = arr[i]; } else if (arr[i] &gt...

2019-01-05 19:46:01 1741

原创 【C++】模仿实现string

引用的头文件:#include <iostream>#include <string.h>using namespace std;类的定义、成员变量的定义、成员方法的声明class Mstring{private: char* _str; int _size; friend bool operator==(const char* str, ...

2018-12-05 19:30:40 310

原创 【C++】函数模型

概念部分:函数模板: 函数模板 函数模板的作用域 函数模板的显式隐式实例化 特例化: 完全特例化 不完全特例化 重载 非模板函数 模板的作用域: 模板的作用域只在当前函数模板的编译: 模板不编译,实例出来的函数代码要进行编译函数模板类型自推: 能够根据参数类型自动推演出模板类型参数模板的实例化: 编译时期,根据模板调用的类型方式,自动生成一份对应于该类型...

2018-11-27 19:54:46 502

原创 【C++】类型作为模板类型参数代码演示

#include <iostream>#include <stdlib.h>#include <time.h>using namespace std;template<typename T>//判大bool Min(T a, T b){ cout << " Min(T a, T b)"<< endl; re...

2018-11-26 00:21:25 520

原创 【C++】链式栈

函数声明:#include <iostream>using namespace std;#define TRUE 1#define FALSE 0typedef int ElemType ;class Node{private:public: ElemType _data; Node* _next; Node() { //cout <&...

2018-11-18 23:09:26 247

原创 【C++】链式队列

函数声明:#include <iostream>#include <stdio.h>using namespace std;#define TRUE 1#define FALSE 0typedef int ElemType;class Node{private: public: ElemType _data; Node* _next;...

2018-11-18 20:23:48 352

原创 【C++】面向对象5

#include <iostream>using namespace std;/*new与malloc的区别: new:先申请内存然后构造 malloc:只申请内存delete与free的区别: delete:先析构然后释放内存 free:直接释放内存*//*静态的成员变量,一个类只有一份,不占对象内存静态成员变量的访问,不依赖于对象,可以用“类名::静态...

2018-11-15 21:13:57 174

原创 【C++】顺序队列

函数声明:#include <iostream>#include <assert.h>#define SIZE 10#define TRUE 1#define FALSE 0using namespace std;class Queue{private: int* _data; int _size; int _head; int _tai...

2018-11-13 01:02:18 400

原创 【C++】顺序栈

函数声明文件:#include <iostream>#include <assert.h>#define SIZE 10#define TRUE 1#define FALSE 0using namespace std;class Stack{private: int *_data; int _size; int _top;//判满函数声明...

2018-11-13 00:08:30 230

原创 【C++】习题1

题目描述: 在不使用“if”“else”“while”“for”“switch”“/”“*”“?:”等运算符的条件下实现程序100 + 99 + 98 + 97 +……+0#include <stdio.h>//利用递归实现int fun1(int n){ static int sum = 0; sum += n; n && fun1(n -...

2018-11-11 18:40:28 324

原创 【C++】入门笔记整理

概念部分:(一)OOP思想四大属性: 1、封装 2、继承 3、多态 4、抽象(二)权限:public private(三)this指针: 成员方法声明或者调用的时...

2018-11-11 18:08:51 258

原创 【数据结构】单链表练习

(注:以下练习中调用的均为带头结点的单链表,读者可以通过“https://blog.csdn.net/xing1584114471/article/details/83004289”带头结点的单链表进行学习了解)/*(一)将带头节点的单链表改成不带头节点的单链表。*///构造结点typedef struct Node1{ ElemType data;//结点数据域 struct ...

2018-11-04 00:29:57 697

原创 【数据结构】顺序表练习

(注:下面是顺序表部分习题的练习,其中用到了顺序表和单链表的相关函数,读者可以参考“https://blog.csdn.net/xing1584114471/article/details/83004289”了解有关单链表的函数实现,参考“https://blog.csdn.net/xing1584114471/article/details/83655736”了解顺序表表的函数实现)/*(一...

2018-11-03 20:02:37 2258

原创 【数据结构】顺序表

函数声明文件#include<stdio.h>#include<malloc.h>#include<assert.h>#define SIZE 10#define ElemType int#define FALSE 0#define TRUE 1typedef struct SqList{ int *elem; // 指向存...

2018-11-02 15:11:54 243

原创 【linux】使用“libevent”库实现多个客户机与服务机之间的交互

头文件和宏定义声明:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <assert.h>#include <signal.h>#include <event.h>#includ...

2018-11-01 21:32:16 727

原创 【数据结构】两个队列实现一个栈

声明文件#ifndef __STACK_H#define __STACK_H#define ElemType int#define SIZE 10#define TRUE 1#define FALSE 0#include <stdio.h>#include <malloc.h>#include <assert.h>//定义队列ty...

2018-10-30 17:41:38 170

原创 【排序】二路归并排序

/*二路归并排序*********************************************************************时间复杂度(O(nlogn))//log以2为底空间复杂度(O(1))稳定思想:现将数列相邻的两个元素分为一组,然后把相邻的两个组调整的有序后再将数列相邻的四个元素分为一组调整为有序数列,然后在将相邻的8个元素分为一组调整,直到l2...

2018-10-28 21:03:07 468

原创 【linux】epoll----ET工作模式下实现多个客户机与服务机之间的通讯

(注:由于前面写过select和poll函数,在epoll函数中大部分代码会和钱前面两个的函数重复,所以在下面的代码中,不再注释重复代码,只将与之不同的代码注释,读者可以通过“https://mp.csdn.net/postedit/83215953”或者“https://blog.csdn.net/xing1584114471/article/details/83343021”、“https:...

2018-10-27 23:55:34 206

原创 【linux】epoll----LT工作模式下实现多个客户机与服务机之间的通讯

(注:由于前面写过select和poll函数,在epoll函数中大部分代码会和钱前面两个的函数重复,所以在下面的代码中,不再注释重复代码,只将与之不同的代码注释,读者可以通过“https://mp.csdn.net/postedit/83215953”或者“https://blog.csdn.net/xing1584114471/article/details/83343021”了解)头文件...

2018-10-27 23:46:23 190

原创 【linux】三种io函数的比较以及ET工作模式和LT工作模式的区别

io函数中ET和LT的区别: LT:描述符上有数据就绪,在提醒用户后,如果用户没有将该数据读完(处理完),在下一轮循环中io函数会继续提醒用户该描述符有数据就绪,直到用户将该描述符上所有的数据读完。这样的特点让LT工作模式具有可靠但低效率的特点。 ET:描述符上有数据就绪,在提醒用户后,如果用户没有处理完该描述符上的数据,在下一轮循环中io函数使不会再次提醒用户该描述符有数据就绪...

2018-10-26 23:31:29 942

原创 【c语言】两个栈实现一个队列

声明文件#ifndef __QUEUE_H#define __QUEUE_H#include <stdio.h>#include <assert.h>#include <malloc.h>#define ElemType int#define SIZE 10#define TRUE 1#define FALSE 0//定义栈typ...

2018-10-26 22:47:50 446

原创 【排序】堆排序

/*堆排序*********************************************************************时间复杂度(O(nlogn))//log以2为底空间复杂度(O(1))不稳定思想:将待排序数列构造成二叉树,将其调整成最大堆后交换头和尾的数,减去最后一个数,将剩下的数据又调整成最大堆然后交换头和尾的数,依此循环(调整规则:从下往上,从右...

2018-10-26 00:41:40 117

原创 【排序】基数排序

/*基数排序*********************************************************************时间复杂度(O(d(n+rd))---O(d(n+r)))空间复杂度(O(rd+n))稳定思想:数据一般为正整数(负数也可以做,但是麻烦一点),找到其中最大的数据求出其位数,再循环根据相应的位数的值将数据放进相应的队列中再按照队列顺序将...

2018-10-25 22:58:08 261

原创 【排序】快速排序

/*快速排序*********************************************************************时间复杂度(O(nlogn)---O(N^2))//log以2为底空间复杂度(O(nlogn))//log以2为底不稳定思想:先选取一个数(待排序数据中的第一个数据)拿出来作为比较的基准,然后从后往前找比基准小的将其放在前面空缺的位置存放...

2018-10-25 00:14:09 170

原创 【linux】poll实现多个客户机与服务器之间的通讯

#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <assert.h>#include <sys/select.h>#include <sys/time.h>#include &lt...

2018-10-24 14:02:32 381

原创 【linux】select实现键盘与显示屏的交互

(注意:在前面我实现过利用I/O函数select实现多个客户机与服务机之间的同时交互,是先定义了一个数组用来存存放服务机的套接字和连接到服务机的每个客户机所对应的文件描述符,然后再一一利用FD_SET放进集合中让select函数监视着,在下面的代码中,可以直接对比出,我并没有像之前一样先定义一个存放所有文件描述符的数组,这样做是因为现在我想要做的是将从键盘输入的字符直接打印在屏幕上,所以这里的se...

2018-10-24 01:10:23 483

原创 【排序】希尔排序

/*希尔排序(缩小增量排序)*********************************************************************时间复杂度(O(n)---O(N^2))空间复杂度(O(1))不稳定思想:将待排序数列按序分组,然后将每组数列按照直接插入的方式排序********************************************...

2018-10-23 17:20:51 108

空空如也

空空如也

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

TA关注的人

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