自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

新新新手学习c++

一个菜鸟对于学c++ primer的一些心得

  • 博客(28)
  • 收藏
  • 关注

原创 小白学爬虫——爬取半次元热门榜top100

from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport urllibimport redef ImgSave(url,n): u=urllib.request.urlopen(url) data=u.read() file=open("F://pic//"+s

2017-10-23 13:26:48 957 1

原创 9.26shopee面试

1.TCP、UDP区别 2.输入url之后发生了什么 引申: DHCP ARP 三次握手 长短连接 3.IP是否有分组,TCP是否有分组,UDP是否有分组 引申: 选择重传和回退N步 流量控制 阻塞控制 IPV4和IPV6是否有分组 4.大小端 5.TCP靠什么保证不丢包 6.找出1000万个单词中出现数量最多的k个,以及时间复杂度 7.32位系统大概有2^32约为4

2017-09-27 00:05:50 7152 2

原创 9.24吉比特测试工程师

主要就是问了一下测试用例,比如游戏登录界面怎么进行测试?经验太少,只想到了二十多条测试用例。 面试过程中,最有意思的问题是:一个偶然BUG,出现的几率极其低,也不知道如何复现,所以报给开发时,开发不认为是一个BUG的时候,应该怎么办? 小概率BUG的多发地带: 1. 临界测试 2. 中断测试 3. 多任务测试 4. 积累测试 小概率BUG信息的提供:

2017-09-24 22:39:43 793

原创 字符串的排列

#include <iostream>#include <string>using namespace std;int book[1000];char a[1000];void find_string(string &s, int len,int n) { if (n == len ) { for (int i = 0; i < len; i++)

2017-09-22 16:21:15 168

原创 二叉树中和为某一值的路径

开始想的是按照求最大值路径的方法,来求出每一条路径的值,后来发现没办法自底向上求出每一条路的值。int max_path(BitTree b) { if (b == nullptr) return 0; int temp1 = b->data + max_path(b->left); int temp2 = b->data + max_path(b->righ

2017-09-22 15:13:20 164

原创 树——数的子结构

bool DoesTreeaequalsTreeb(BitTree a, BitTree b) { if (b == nullptr) return true;//b指向了nullptr,说明这一方向遍历到最后一个数了,无论a指向什么,都无所谓了 if (a == nullptr)//b还有节点没比较,但a已经没有子节点可以比较了,肯定不相等 retur

2017-09-18 16:33:06 345

原创 面试常考排序

交换排序void jh_sort(int *a,int len) { for (int i = 0; i < len; i++) { for (int j = i; j < len; j++) { if (a[i] > a[j]) swap(a[i], a[j]); } }}冒泡排序void m

2017-09-18 16:29:38 554

原创 二叉树——高度

int getHeigh(BitTree b) { if (b == nullptr) return 0; else { int left = getHeigh(b->left); int right = getHeigh(b->right); return 1 +((left > right) ? left : rig

2017-09-17 00:16:36 187

原创 最大子串和问题

问题给定一组数字,求连续的字串的最大的和。 这里要注意题目中是子串和而不是子序列和。 子序列只要求各元素的顺序与其在数组中一致,而没有连续的要求。如果求子序列,可直接把这组数字中的正数相加即可。最开始想着只要把这组数字中各个正数子序列分别求和,比较哪个大就行了,后来发现不对。比如:{1,2,3,-1,3,1},正数子序列分别为{1,2,3},{3,1},其和分别为6和4,但事实上,1+

2017-09-16 22:03:14 383

原创 判断元素出栈顺序是否合法

题目描述给定一个入栈序列,给定一个出栈序列,判断该出栈序列是否合法思路从两个数组的第一个元素开始,如果栈为空,或者栈顶元素不等于当前出栈数组当前下标对应的元素时,将当前入栈数组中下标所指向的元素进行压栈1.初始状态,栈为空 2.因为栈为空,因此将入栈数组下标所指向的元素1压入栈,入栈数组下标向后移一位 3.因为当前栈顶元素1不等于出栈数组下标所指向的元素4,因此将入栈数组下标所指向的元素

2017-09-16 16:37:50 541

原创 在字符串中找出连续最长的数字串

INPUT输入一个字符串OUTPUT输出字符串中最长的数字字符串和它的长度。如果有相同长度的串,则要一块儿输出,但是长度还是一串的长度#include <iostream>#include <string>#include <vector>using namespace std;int main() { string s; while (cin >> s) {

2017-09-15 23:10:29 212

原创 最长对称子串

对于任何一个位置i,当对称的数组是一个奇数时,对称的个数初始就为1,然后以i为原点向外比较i-j和i+j,如果i-j和i+j相等,则对称的个数+2,如果不相等就立刻跳出循环。 int temp = 1; for (int j = 1; j < len; j++) { if ((i - j < 0) || (i + j > 0) || s[i - j] !=

2017-09-15 12:27:53 947 1

原创 深度优先搜索——神奇的矩环

题目 小鑫的女朋友被魔王抢走了! 魔王留给小鑫一张n*m大的表,上面有各种各样的颜色,用A-Z这26个字母来表示。魔王留给他一个任务,如果小鑫可以在这张表中找出任意一个长度大于1的环,并且这个环的颜色是相同的,魔王就把小鑫的女朋友还给他。为了从魔王手中夺回他的女朋友,小鑫请你帮忙,你能帮帮他吗?Input 多组输入。 每组的第一行有两个整数n,m。代表表的大小。 接下来是由A-Z的一些字母

2017-09-12 14:39:09 237

原创 树——重建二叉树

①先处理传入的数组,如果数组没问题了,正式开始根据两个数组构建树BitTree Construct(char *preorder, char *inorder, int len) { if (preorder==nullptr || inorder==nullptr || len < 0) return nullptr; return ConstructCore(pr

2017-09-12 10:01:59 133

原创 树——二叉树的序列化和反序列化

最开始看到序列化和反序列化我是懵逼的==感觉好高大上啊,等查了下定义才发现,不就是从文件中读取数据,构建树咩typedef struct BitNode{ char data; BitNode *left; BitNode *right;}*BitTree;bool rdisplay(BitTree &b) { char c; in >> c; i

2017-09-08 10:50:22 228

原创 树——二叉树层序遍历

收到二叉树镜像非层序遍历的启发,今天居然无师自通了老是记不住的二叉树层序遍历。void leveltraver(BitTree &b) { if (!b) return; queue<BitTree> s; s.push(b); while (s.size()) { BitTree p = s.front(); s.po

2017-09-06 16:25:47 166

原创 树——二叉树的镜像

递归实现:void Mirrordisplay(BitTree &b) { if (!b) return;//这里要考虑到最开始b就传入了一颗空树!!! if ((b->left == nullptr) && (b->right == nullptr)) return;//到了叶子结点返回了 BitTree c = b->left; b

2017-09-06 15:27:57 175

原创 linux下sort -k的一些体会

今天下午学习sort -k这个指令时,一直在数值这里出现排序错误。 输入如下测试数据: 当按照第一列排列时是正确的: 但按照第二列排序时,喵喵喵???怎么跟说好的不一样啊!!!为什么gugu的50会排在最后? 其实是因为默认是按照第二列的第一个字符来比较的,若想比较数字,只需要在列数后面加1即可:

2017-09-04 19:46:15 11670

原创 队列

#ifndef QUEUE#include <iostream>using namespace std;typedef int ElemType;typedef bool Status;typedef struct QNode { ElemType data; QNode* next;}QNode,*QueuePtr;typedef struct { QueueP

2017-02-01 10:58:30 168

原创

栈是限定仅在表尾进行插入和删除的线性表。#ifndef FIXED_CAPACITY#include <iostream>#include <string>#define STACK_INT_SIZE 100//存储空间初始分配量#define STACKINCREMENT 10//存储空间分配增量#define TRUE 1;#define FALSE 0;typedef int

2017-02-01 10:57:43 159

原创 查找——AVL

平衡二叉树(AVL),是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。  AVL树是搜索用的,树的hierarchy本身没什么特别的意义。旋转的关键是,保证平衡,并且中序遍历后的顺序不变。可以把它理解为一个黑箱,查找使用,我们并不需要知道它内部的hierarchy。 在AVL树中,最重要的是理解树的旋转。  我们将AVL树大体分成直线型和折线型,具体分为4种,其旋转要点是:当

2017-01-24 10:55:57 434

原创 图——AOV拓扑排序

typedef struct EdgeNode{ int adjvex; int weight; EdgeNode *next;};typedef struct VerTexNode { int in;//入度 VertexType data; EdgeNode *next;}VerTexNode,AdjList[MAXVEX];typedef

2017-01-08 16:33:38 306

原创 图——Floyd算法

typedef int Pathmatirx[MAXVEX][MAXVEX];//v到w最短路径P[v][w]typedef int ShortPthTable[MAXVEX][MAXVEX];//v到w带权长度void ShortestPath_Floyd(MGraph G, Pathmatirx *P, ShortPthTable *S) { int v, w, k; for

2016-12-30 17:31:06 210

原创 图——Dijkstra算法

Dijkstra算法的基本过程 假设路网中每一个节点都有标号,记为vi,i是其编号。D[i]是从起点v0到某点vt的最短路径长度;P[i]表示从v0到vi的最短路径中i点的前一个点的编号。求解从起点v0到终点(或图中任意一点)vt的最短路径算法的基本过程为:假设路网中每一个节点都有标号 是从出发点s到点t的最短路径长度;表示从s到t的最短路径中t点的前一个点。求解从出发点s到点t的最短路径算法的基

2016-12-29 18:42:42 329

原创 图——Kruskal算法

void swap(Edge L[], int i, int j) { Edge temp = L[i]; L[i] = L[j]; L[j] = temp;}void BubbleSort(Edge L[],int num) { int i, j; for (i = 0; i < num; i++) { for (j = num - 1;

2016-12-22 17:53:31 198

原创 图——Prim算法

Prim算法是从点的方面考虑构建一颗MST。 其大致思想是:设图G顶点集合为U,首先任意选择图G中的一点作为起始点a,将该点加入集合V,再从集合U-V中找到另一点b使得点b到V中任意一点的权值最小,此时将b点也加入集合V;以此类推,现在的集合V={a,b},再从集合U-V中找到另一点c使得点c到V中任意一点的权值最小,此时将c点加入集合V,直至所有顶点全部被加入V,此时就构建出了一颗MST。因为有

2016-12-20 15:17:30 475

原创 图——邻接表

typedef char VertexType;//顶点类型#define MAXVEX 20typedef struct EdgeNode { int adjvex;//邻接点域,用于存储该顶点对应下标 EdgeNode *next;}EdgeNode;typedef struct VerTexNode { VertexType data; EdgeNode

2016-12-15 10:54:00 170

原创 线性表的链式存储结构

线性表的链式存储结构本文是学习《大话数据结构》的个人心得基础定义单链表的整表创建单链表的整表删除单链表的读取单链表的插入删除基础定义//这里已默认定义了所需的头文件和using namespace std;typedef struct Node { int data; Node *next;}relNode;typedef relNode *LinkList;//Li

2016-11-20 17:00:06 265

空空如也

空空如也

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

TA关注的人

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