自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 判断一个IP地址是否是合法

我们所知道的ip地址总共有五类,如下图所示:分别为A类、B类、C类、D类、E类#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <assert.h>//计算ip地址一共有多少个.int C...

2020-07-02 23:24:48 974

原创 记录自己基本shell脚本语法的学习代码

#!/bin/bash#函数fun(){#在函数中定义变量#$#在函数里代表的函数的参数个数 str=hello echo "fun \$#=$#" echo "fun \$1=$1" echo "fun \$2=$2" echo "fun \$3=$3"# local str=hello# unset str ec...

2020-07-02 23:24:24 249

原创 奇数魔方阵、偶数魔方阵(能被4和2整除的 和 不能被4整除但可以被2整除)

#include<stdio.h>//奇数魔方阵void MagicSquare(){#define ROW 3 int arr[ROW][ROW] = {0}; int currow = 0; int curcol = ROW/2; arr[currow][curcol] = 1; for(int i = 2; i <= ROW*ROW; i++)...

2020-05-06 21:02:36 815

原创 背包系列问题

0-1背包问题:容量为10的背包,有5种物品,每种物品只有一个,其重量分别为5,4,3,2,1,其价值分别为1,2,3,4,5。设计算法,实现背包内物品价值最大。int Get_max(int m,vector<int>&w,vector<int>&v){ vector<int> fmax(m+1,0); for(...

2019-09-18 00:20:49 521

原创 9.3 VipKid笔试(求数组相加为0的对树 和移动平均数)

编程题1:数组里相加为0的数对#include <iostream>#include <algorithm>#include <vector>using namespace std;int GetNumber(vector<int> &nums){ int count = 0; int tmp = 0; int i...

2019-09-03 23:53:36 229

原创 给定n个整数,得到n个数拼成的最大值和最小值

解题思路: 自定义一种字符串的比较规则:即如果A+B>B+A,则我们认为A>B。且可以证明:如果A+B>=B+A,B+C>=C+B,则一定有:A+C>=C+A。 分3步,先把n个数字转换成字符串存储; 再按照自定义的规则把n个字符串排序; 最后按照从小到大的顺序输出这些字符串(如果从大到小则是求最大的多...

2019-09-03 15:31:49 1590

原创 有一个集合由A-Z 26个字母俗称,打印这个集合所有的子集(不能使用递归)

假设ABC,三个我们一共有8个子集,分别如上图所示排列。那么我们就可以通过这个规律排列出所有的子集。#include <iostream>#include <vector>#include <algorithm>using namespace std;void Prinf_jihe(int n){ char str[] = "ABC...

2019-09-02 19:59:48 378

原创 用一个函数实现 ”主机序转化为网络序号“的功能

解析:主机序也称为本地字节序,有大端和小端之分大端:低地址放大数据;小端:低地址放小数据,我们所知道的 网络都是采用大端模式。该算法主要需要测试主机序,如果是大端则不做任何的改变,如果是小端则逆序#include <stdio.h>bool IsLittle() //判断是否是小端,小端低地址放小数据{ short a = 0x0001; //小数据...

2019-09-02 19:24:12 228

原创 数组中两个数之和为定值,求出这个数组里所有相加为定值的 数对

#include <iostream>#include <vector>#include <algorithm>using namespace std;void GetNumber(vector<int>nums, int Sum){ int i = 0; int j = nums.size()-1; int t...

2019-09-02 18:58:11 805

原创 找出数组中唯一出现的那个数字

一个非空整数数组,其他数字都出现了两次,找出那个唯一的数字???? 1^3^1 = 31^2^1 = 2#include <iostream>#include <vector>using namespace std;/*找出数组中唯一出现的那个数字 */void FindOnly(vector<int> &array)...

2019-08-31 22:02:15 667

原创 class定于一个空类的时候哪些变量和成员函数已经定义了??

class Empty{};如上的一个空类;我们知道该类中没有任何成员,但是编译器回自己生成一些默认的函数。比如说:(1)默认的构造函数和复制构造函数,它们被用于类的对象的构造过程 (2)析构函数,被用于同类的对象间赋值过程 (3)赋值函数 (4)取值运算,用于对类的对象进行取地址的函...

2019-08-20 22:51:54 224

原创 腾讯8.17笔试: 输入一个字符串再输出其解压后的字符串

输入:HG[3|B[2|CA]]F输出:HGBCACABCACABCACAFint main(){ string str; cin >> str; //getline(cin,str); stack<char> sk; list<char> tmp; for (int i = 0; i < str.size(); i++) ...

2019-08-19 18:38:41 569

原创 守护进程及其编程流程

守护进程是在后台运行不受终端控制的进程(如输入、输出等),一般的网络服务都是以守护进程的方式运行。守护进程脱离终端的主要原因有两点:(1)用来启动守护进程的终端在启动守护进程之后,需要执行其他任务。(2)(如其他用户登录该终端后,以前的守护进程的错误信息不应出现)由终端上的一些键所产生的信号(如中断信号),不应对以前从该终端上启动的任何守护进程造成影响。要注意守护进程与后台运行程序(即加&启动的程...

2019-08-01 18:47:20 560

原创 select、poll、epoll的比较

辅助说明: 1)select和poll每轮循环都需要将描述符和事件传给内核,而epoll每个描述符只需要传一次,不需要每轮都传,而且select事件集合相对较小2)select和poll在内核中是以轮询的方式实现的,时间复杂度O(n),而epoll是采用回调函数的方式监测,时间复杂度为o(1)3)select和poll返回后,为了找到就绪描述符,需要遍历所有元素,时间复杂度为...

2019-08-01 18:40:20 231

原创 调整数组顺序使 奇数位于偶数前面

类似快排的做法#include <stdio.h>#include <string.h>#include <stdlib.h>#include <assert.h>void reOrderArray(int *arr, int len){ int *low = arr; int *high = arr+len-1; while...

2019-07-31 19:57:51 128

原创 用O(1)的时间复杂度删除链表中的结点

//链表结点typedef struct ListNode{ int data; struct ListNode* next;}ListNode,*pListNode;//函数void DeleteNode(pListNode* pListHead, pListNode pos);我们普通所想到的方法就是,遍历这个链表,然后查找到该节点,查找到它的前驱,删除当前结点...

2019-07-31 19:19:25 380

原创 对TCP和UDP按照书上代码实现过程 并 讲解三次握手、四次挥手过程

对于tcp的客户端:#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include <assert.h>#include <sys/types.h>#include <sys/socket.h>...

2019-07-31 15:41:39 234

原创 按照书上 实现I/O复用

main函数#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <assert.h>#include <signal.h>#include <event.h>#include &l...

2019-07-31 15:33:12 217

原创 按照书上代码 实现poll

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include &...

2019-07-31 15:29:41 176

原创 静态库、动态库的特点和 区别 以及动态库所在的位置

库文件:预先编译好的方法的集合 Windows系统静态库扩展名为:.lib 动态库扩展名为:.DLL Linux系统静态库扩展名为:.a 动态库扩展名为:.so1、libXX.a:静态库:可执行程序会包含用到的方法(1)特点:程序在链接的过程当中,链接器从库文件找那个取得所需代码,赋值...

2019-07-31 15:18:43 544

原创 有一个字符串,包含n个字符,实现该字符串从第m个字符开始全部替换成为另一个字符串

void Copystr(char *des,char *src, int m){ assert(des != NULL || src != NULL); for(int i = 0; *des != '\0',i < m; i++) { des++; } while(*des != '\0') { *src = *des; des++; src++; }...

2019-07-31 15:00:43 1382

原创 有n个整数,使前面各数顺序向后移m个位置,最后m个数字变成最前面m个数

void Move(int *arr,int n, int m){ if(m <= 0 || n <= 0 || m >= n) { return ; } //重新定义一个数组存储起来转换后的 int *brr = (int*)malloc(m*sizeof(int)); int i; //移动后面的m数据到新的内存区域 for(i = 0; i &lt...

2019-07-31 14:58:35 509

原创 查找一串字符中最长单词个数 和 总共有多少个单词

//查找一个字符串里面最长的单词,不需要判断单词是否合法//并且返回共有多少个单词int Word_Number(const char *str){ // assert(str != NULL); int count = 0; while(*str != '\0') { //在这句主要 是字符遇到非字符是一个单词 *(str+1) if(isalpha(*str) &amp...

2019-07-27 13:24:05 529

原创 自己实现 itoa 把数字转换为字符串(10进制到2~36进制的转换)

#include <stdio.h>>#include <stdlib.h>#include <string.h>#include <ctype.h>#include <stack>//char*是转换后存储的字符组//n是需要被转换的整型数字//radix是输入想要转入的多少进制//在转换中,需要先除后模,再取...

2019-07-27 11:01:13 319

原创 atoi把字符串转换为数字(不调用库函数,含八进制、十进制、十六进制)

#include <stdio.h>#include <string.h>#include <ctype.h>#include <stdlib.h>//a to i //库里面的 atoi函数 只能转换十进制//字符串转整数//八进制,当遇到非数字字符就退出int o_atoi(const char *str){ int t...

2019-07-26 23:16:12 3460

原创 筛选法求素数(质数)

//筛选法求素数 //放在数组里,如果是素数标记为1,并且打印出来void IsPrime(int n){ int *pArr = (int *)malloc(n*sizeof(n)); int i = 0; int j = 0; assert(pArr != NULL); for(i = 0; i < n; i++) { pArr[i] = i; } pA...

2019-07-26 22:20:51 318

原创 【13】如何计算一个结构体需要多少字节的长度

struct A{ int a; float b;};//8 由于int四个字节,float四个字节,所以八个字节struct B{ char a;//1+3 int b;//4};//8char一个字节,int四个字节,struct C{ char a;//1+1 short b;//2 int c;//4};...

2019-07-26 22:17:24 759

原创 找出一个二维数组的鞍点

int FindPoint(){#define ROW 5#define COL 5 int arr[ROW][COL]; int j = 0; int i = 0; srand((unsigned int)time(NULL)); for(i = 0; i < ROW; i++) { for(j = 0; j < COL; j++) { arr[i]...

2019-07-26 22:09:19 1179

转载 虚拟地址空间的内存布局图

这是大神的图......

2019-07-17 21:12:53 263

原创 题目十二:打印1到最大的n位数

题目:输入数字n,按顺序打印出从1最大的n位十进制数,比如输入3,那么打印出来1、2、3一直到最大的三位数,也就是999简单解法:#include <iostream>using namespace std;void PrintToMaxNumber(int n){ int number = 1; int i = 0; while(i++ < n) ...

2019-07-11 15:38:40 152

原创 题目十一:数值的整数次方

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。class Solution {public: double Power(double base, int exponent) { if(exponent>0) { if(exponent==1) ...

2019-07-11 11:43:16 149

原创 题目十:二进制中1的个数

输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。class Solution {public://位运算 int NumberOf1(int n) { int count = 0; for(int i = 0; i < 32; i++) { if( (n&1...

2019-07-11 11:13:40 136

原创 题目九:矩形覆盖

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?class Solution {public: int rectCover(int number) { if(number < 1){ return 0; } e...

2019-07-11 10:42:25 137

原创 题目八:青蛙跳台阶

一只青蛙一次可以跳1级台阶,也可跳2级,那么这个青蛙跳上一个n级的台阶,共有多少中解法?n = 0 0n = 1 1n = 2 2种方法,(可以是 1 1,也可以直接跳2个台阶)n = 3 3种方法,(可以是111,也可以是12,还可以是21)n = 4 5种方法,(可以是1111,22,211,112,121).....以此类推 即 f(0) = 0...

2019-05-16 22:39:34 280

原创 题目七:斐波那契数列

递归:class Solution {public: int Fibonacci(int n) { if(n <= 0) { return 0; } if(n == 1) { return 1; } ...

2019-05-16 22:19:01 231

原创 题目六:旋转数组中的最小数组

特殊情况示例如下:如果出现这种情况,此时我们需要选择顺序排序:if(rotateArray[left] == rotateArray[right] && rotateArray[left] == rotateArray[mid]) { return Minorder(rotateArr...

2019-05-16 21:41:28 208

原创 题目五: 用两个栈实现一个队列&两个队列实现一个栈

即两个栈,stack1用来push数据,即{a,b,c},然后把stack1的数据pop出来,由于栈是先进后出原则,所以出来顺序是{c,b,a}然后在stack2 push stack1 所弹出来的数据,存储即为{c,b,a},pop的话就是{a,b,c},即满足了队列的先进先出原则。class Solution{public: void push(int node)...

2019-05-15 21:50:02 208

原创 题目四:重建二叉树(已知前序中序和已知中序后序)

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。比如说输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出该二叉树。#include <stdio.h>#include <string.h>#include <stdli...

2019-05-13 23:26:12 204

原创 数据结构学习 之 二叉树的建立前序中序后序遍历

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <iostream>using namespace std;struct BinaryTreeNode{ int data; BinaryTreeNode *leftchild; //左子树 Bin...

2019-05-13 18:00:24 305

原创 基于Socket的原理,实现的客户端和服务端之间的文件传输

此小项目主要是针对于在局域网内,七八个人可以连接的那种服务器而设计的,他主要是基于socket原理来实现的。客户端与服务器端最开始都是写在Linux平台下。后来试想在同一个IP地址下,Linux和Windows平台之间也是可以传输的。所以最后也有把windows作为服务器端(需要多进程)先定义一个socakaddr_in和SOCKET对象,调用bind来对端口进行绑定,然后再调用liste...

2019-05-13 14:26:44 2513

空空如也

空空如也

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

TA关注的人

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