- 博客(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 <...
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) &...
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
原创 题目十二:打印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关注的人