自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 堆排序代码

class HeapSort{ public: static void adjustHeap(vector<int> &vec, int pos, int len) { auto tmp = vec[pos];//先取出当前元素i f...

2018-08-16 18:31:09 272

转载 BP神经网络的数学原理及其算法实现

转自http://blog.csdn.net/zhongkejingwang/article/details/44514073BP网络的数学原理  下面将介绍BP网络的数学原理,相比起SVD的算法推导,这个简直就是小菜一碟,不就是梯度吗求个导就完事了。首先来看看BP网络长什么样,这就是它的样子:   为了简单起见,这里只介绍只有一个隐层的BP网络,多个隐层的也是一样的原理。

2017-11-13 19:20:51 566

原创 17年微软笔试题

#include #include #include #include #include #include using namespace std;/** 儿子在父亲后面跟父亲一起跑步* 父亲的起点在x,儿子的起点在y* 父亲速度为每步x米* 父亲总共跑了 n steps* 求儿子的跑步速度(m/step)* 使得儿子在跑步过程中与父亲重合的* 步子是最多的* 儿子

2017-10-18 21:55:01 582

原创 17 商汤笔试2

/** 题目描述: 求最长递增序列* 输入 :n 和n个整数* 输出 : 整数n 代表最长递增序列* sample input : 3 1 6 5 * sample output : 2 * 思路: 对序列每一位置维护一个变量* 表示当前位置最长序列长度,则每当多一个* 数字的时候,该位置最长递增序列,可以由* 前面的小于该数的拥有最长递增序列的递增* 序列长度加一获得**/

2017-10-18 21:33:30 861 1

原创 17 年头条笔试

#include #include #include #include #include #include using namespace std;/** 题目描述: 总共有n个房间,现有一房间需要重新安排* 安排方式如下: 假设i号房间需要重新安排,先让该房间人全部出来,* 再按照i+1,i+2……依次安排,每次往里安排一人,到n-1号房间后从0重新循环。* 输入 :房间

2017-10-18 21:09:55 264

原创 17年商汤笔试题

#include #include #include #include #include #include using namespace std;/** 编码规则是a-z 对应1-26* 输入一个字符串* 输出可能的解码方案* sample input 12* sample output 2* note : a(1)b(2) or l(12)* explan

2017-10-17 21:25:54 1354

原创 左移运算符 优先级很低

写了一个大小端转换的代码int x =recv(sockConn, (char*)buf, len, 0); cout << "data read:" << x << endl; for(int i = 0; i < 30; i++) cout << hex << (int)buf[i] << endl; frameInfo info; //info.resolu

2017-10-15 16:46:25 1527

原创 c++ 文件操作 fs.read 读出的字符数量不对,0x1A 在搞怪

代码如下:char* buf = new char[4202496];ifstream fs("1.data"); fs.read(buf,4202496);cout 每次输出的gcount 都是217 ,无法读出指定数量的字节。找了半天原因,原来是文件默认是以ascii 码的方式打开的,以二进制打开则解决问题。ifstream fs("1.data",std::ifstrea

2017-10-14 13:03:22 1705

原创 输出二叉树每层节点数量

/* 输出二叉树每层的节点*/typedef struct node{ struct node* left; struct node* right; node(){ left = NULL; right = NULL; };} node,*nodeptr; void count(vector layerlist){ if (layerlist.size() == 0)

2017-09-30 17:14:47 2202

原创 一个笔试题,射击靶子最高得分问题

有一排靶子,靶子上有不同的得分,亦枪手射击靶子,集中某个靶子则得到相应的得分,但是没集中一个靶子都会破坏掉它两侧的两个靶子(如果有的话),求这个枪手能够得到的最高分:输入 : 第一行 整数n,            第二行 n 个整数表示 每个八字的分数(分数最少为1)输出   该枪手的最高得分:解题思想: 枪手每击中一个靶子在得分的时候,还会破坏两个靶子,在得到该靶子分数

2017-09-30 16:51:02 1781

原创 c++ 流对象之streambuf

先来看一看c++ 的 io 体系:c++ 流的概念大大的方便了IO操作,概念上我们可以把Stream 看作一个管道,IO 操作即是往里塞数据和往外取数据,而不用考虑管道里面的溢出越界等各种情况。在stream 得实现中,如上图,所有的非虚基类内部都有一个streambuf, streambuf 是一个虚基类,代表流对象内部的缓冲区,他有两个子类,分别是stringbuf 和

2017-09-27 11:14:47 20548 4

原创 c++ 范围for 循环的两点注意事项

C++11支持range-based for循环。这是一个很方便的特性,能省挺多代码。以下代码就能很方便的遍历vector中的元素,并使每个元素翻倍:v = {1,2,3,4};for( atuo& r : v){  r *= 2;}可以遍历的对象包括:数组。(不包括指针)定义了begi

2017-09-07 14:26:23 1066

原创 c++ erase 会使迭代器失效

因为erase函数会真正删除元素,导致后面的元素前移,因此后面的迭代器失效(不能引用到正确的结果)所以每次执行完erase操作之后,后面的迭代器都会失效,看看下main的代码:int removeDuplicates(vector& nums) { map tmp_map; for(vector::iterator it = nums.begin(); it != nu

2017-09-07 14:08:27 3611 1

原创 drawImage问题

getImagedata浏览器自动执行

2017-08-30 15:00:54 271

转载 构造函数为protected 和 private 的使用场景

将构造函数,析构函数声明为私有和保护的,那么对象如何创建?已经不能从外部调用构造函数了,但是对象必须被构造,应该如何解决,麻烦大家帮忙说明,关于构造,析构函数声明为私有和保护时的用法??? 提出这个问题,说明你已经对c++有所思考了。从语法上来讲,一个函数被声明为protected或者private,那么这个函数就不能从“外部”直接被调用了。对于protected的函数,子类的“

2017-08-23 14:43:21 1232

原创 理解websocket协议解决消息发送问题 Could not decode a text frame as UTF-8.

浏览器报错如下:Could not decode a text frame as UTF-8.看样子是浏览器收到了数据帧,但是按照UTF-8解码出错(我猜测有可能发的数据按照UTF-8解码,会有一部分违反

2017-08-17 17:04:08 16045 5

转载 c++ 变量不要定义在.h 头文件当中(main already defined in *.obj 解决方法)

原文地址:http://blog.csdn.NET/tianwailaibin/article/details/6239380原博客地址:http://blog.csdn.net/u010536615/article/details/50250747头文件中定义变量会引起编译器报错:main already defined in *.obj 头件的中的#ifndef,这是一

2017-08-16 13:33:13 2592

原创 c++ shared_ptr使用的几点注意

先介绍一下shared_ptr.是c++为了提高指针安全性而添加的智能指针,方便了内存管理。功能非常强大,非常强大,非常强大(不单单是shared_ptr,配合week_ptr以及enable_share_from_this()以及share_from_this())!!!对于支持智能指针的c++版本编程,能用智能指针就用智能指针!智能指针的头文件是,具体用法请参考c++reference:h

2017-08-15 18:05:13 32339 6

原创 回溯法之递归回溯和迭代回溯

回溯法有通用解题法之称,它可以系统的搜索一个问题的所有解或者任意解。它在问题的解空间树中,按深度优先策略从根节点出发搜索解空间树,算法搜索至解空间树的任意一个结点时,先判断该节点如(子树)是否包含问题的解,如果肯定不包含,则跳过对其子树的搜索,逐层向其根节点回溯。否则,则按照深度优先的策略搜索子树。    当回溯到根,且根节点的所有子树都已被搜索遍才结束。这种以深度优先方式系统搜索问题解的算法

2017-07-11 19:30:41 22451 3

原创 容器越界程序会停

建了一个二维数组,用容器实现。但是采用二维数组的下标方式访问,当越界时程序会停,记录一下

2017-07-05 09:28:37 395

原创 从序列里条N个数,使其和等于M

/*问题描述: 从一个序列里面取N个数,使N个数的和为M ,找出这样的序列*/#include using namespace std;int cnt = 2;int target = 9;int count = 0;int tmp = target;void getSubset(int list[],bool v[],int a,int b,int sum){ if(cou

2017-07-02 12:47:38 798

原创 组合问题的算法实现

/*问题描述:对于一组各不相同的数字,从中任意抽取1-n个数字,构成一个新的集合。求出所有的可能的集合。例如,对于集合{1,2,3},其所有子集为{1},{2},{3},{1,2},{1,3},{2,3}{1,2,3}, 给定一个数组(元素各不相同),求出数组的元素的所有非空组合(即数组的所有非空子集)解法:位向量法。用一个辅助数组表示各个元素的状态。1表示在集合中,0表示不在数组中。递归

2017-07-02 11:18:45 855

原创 全排列问题算法实现--递归

/*     设R={r1,r2,...rn}是要进行排列的n个元素.Ri=R-{ri}.集合X中元素的全排列记为     Perm(X).(ri)Perm(X)表示在全排列Perm(X)的每一个排列前加上前缀ri得到的排列     R的全排列可归纳定义如下:         当n=1时,Perm(R)=(r),其中r是集合R中唯一的元素;         当r>1时,Perm(R)由(

2017-07-02 10:45:37 714

原创 python 整数越界问题

python 内部自带大整数运算能力,整数运算不会溢出,只要内存足够,就oK下面的例子演示了两个32位整数加法的情况(通过位运算实现def getSum(a, b): """ :type a: int :type b: int :rtype: int """ MAX = 0X7fffffff

2017-05-18 21:11:39 5366

原创 使用STL模板必须重载的运算符

STL各种容器和算法的sort和find函数对重载运算符的调用情况:1) 二叉树类型的容器的sort和find都会调用operator 2)线性类型容器sort会调用operator 需要非常注意重载

2017-04-30 22:38:53 978

原创 C++ STL源码分析之 list

STL中list与其他顺序容器实现不同因此不支持一部分容器操作,注:forward_list 有自己特有的insert 和emplace,vetor和string不支持push_front和emplace_frontSTL的list是一个双向链表,而且实现的是个环状双向链表,因此一个指针即可代表整个链表。为了符合STL对于前闭后开的区间要求,node指针指向特意置于尾端的一个空白节点,以符

2017-04-30 11:48:25 1905 2

原创 Python 通过连接qq邮箱服务器发送邮件

python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。发送邮件主要用到了smtplib 和 email代码非常简单,上代码:import smtplibfrom email.mime.text import MIMETextfrom email.header import Headermail_host = "smtp.qq.c

2017-04-22 16:12:10 4004 1

原创 TypeError: 'bytes' object is not callable解决办法

python 遇到这个问题:源码如下# 导入 socket、sys 模块import socketimport sys# 创建 socket 对象serversocket = socket.socket( socket.AF_INET, socket.SOCK_STREAM) port = 80serversocket.bind(('127.0.0.1

2017-04-21 21:25:12 10705 3

原创 python socket通信的小例子和几点反思

服务器端的代码非常简单,收到客户端连接建立后发送一个简单的http 报文# 导入 socket、sys 模块import socketimport sys# 创建 socket 对象serversocket = socket.socket( socket.AF_INET, socket.SOCK_STREAM) port = 80serversocket.

2017-04-21 17:07:37 361

原创 动态规划之矩阵连乘问题

动态规划求解矩阵连乘问题

2017-04-14 19:51:56 3666 2

原创 标准二维表问题,catalan数的应用

catalan数解决标标二维表问题

2017-04-12 21:18:25 1216

原创 快速排序算法的思想和几种实现方式

快速排序算法是基于分治策略的另一个排序算法。该方法的基本思想是:1.先从数列中取出一个数作为基准数,记为x。2.分区过程,将不小于x的数全放到它的右边,不大于x的数全放到它的左边。(这样key的位置左边的没有大于key的,右边的没有小于key的,只需对左右区间排序即可)3.再对左右区间重复第二步,直到各区间只有一个数快排目前有两类实现算法,第一种是标准算法,第二种是两头

2017-04-12 08:43:39 19917 2

原创 合并排序的思想与实现

合并排序算法是用分治策略实现对N个元素进行排序的算法。基本思起是 : 将待排序元素分成大小大致相周的两个子集合,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。大致过程如下图所示: 该算法的复杂度是 O(nlogn).而最基础的冒泡和选择排序算法复杂度是O(n^2). 该算法有递归和非递归两种实现:递归实现:

2017-04-02 09:09:14 2679

原创 原码VS补码 (对于有符号数而言)

原码的表示思想是最高位为符号位,其余位为绝对值。假设某类型有8位,X7 X6 X5 X4 X3 X2 X1 X0 则其表示范围是 -127 到+127   (2^7 -1)原码的表示方法简单,但是在做有符号加法时较为复杂(两数异号时,需要比较绝对值大小,再做减法)。而补码表示法很好的解决了这个问题(直接加减即可)。补码的最高位表示符号位,数值位分两种情况

2017-03-30 10:01:23 486

原创 最简洁的代码 求字符串中无重复的子串

最简洁的代码 求字符串中无重复的子串 longest substring

2017-03-29 17:11:39 372

原创 KMP 算法的实现过程讲解,图解加算法说明

KMP 算法的简单理解

2017-03-29 15:59:08 1645

转载 c++数组遍历十种方式

int ia[3][4] = {1,2,3,4,5,6,7,8};//下标for (int i = 0; i {    for (int j = 0; j     {        cout     }}//指针for (int(*p)[4] = ia; p != ia + 3; p++){    for (int *q = *p; q != *p

2017-02-09 11:44:00 18077 1

原创 c++中string类split函数的实现

C++String类没有spit库函数,一下为手动实现的代码片段。#include #include #include #include using namespace std;void split(std::string& s,std::string& delim,std::vector* ret){ size_t last = 0; size_t index = s.find_

2017-02-03 16:04:05 7830

原创 java UDP 发送报文问题

in  java UDP programming   the udppacket is binding a certain section of storage in computer memory,you can't change the walue of the variable to set the content you want to send  there is a met

2015-11-22 10:00:55 676

空空如也

空空如也

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

TA关注的人

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