自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卖火柴的小男孩

梦想发文章的好孩子。

  • 博客(103)
  • 资源 (2)
  • 收藏
  • 关注

原创 只能在类的构造函数的初始化列表

1、 const数据成员的初始化只能在类的构造函数的初始化列表中进行。要想建立在整个类中都恒定的常量,应该用类中的枚举常量来实现,或者static cosnt。 2、引用类型,引用必须在定义的时候初始化,并且不能重新赋值,所以也要写在初始化列表中; 3、没有默认构造函数的类类型,因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数;...

2018-03-09 22:38:55 846

转载 C++如何实现类对象只能动态分配或只能静态分配

C++中建立类的对象有两种方式: (1)静态建立,例如 A a; 静态建立一个类对象,就是由编译器为对象在栈空间中分配内存。使用这种方法,是直接调用类的构造函数。 (2)动态建立,例如 A* p = new A(); 动态建立一个类对象,就是使用new运算符为对象在堆空间中分配内存。这个过程分为两步:第一步执行operator new( )函数,在堆空间中搜索一块内存并...

2018-03-09 22:05:43 2526 2

转载 strcpy函数实现

转载: https://www.cnblogs.com/chenyg32/p/3739564.html已知strcpy函数的原型是: char *strcpy(char *dst, const char *src); 实现strcpy函数 解释为什么要返回char * 假如考虑dst和src内存重叠的情况,strcpy该怎么实现1.strcpy的实现代码char * str...

2018-03-07 10:53:24 402

转载 extern "C"的作用

extern “C”的主要作用就是为了能够正确实现C++代码调用其他C语言代码。加上extern “C”后,会指示编译器这部分代码按C语言的进行编译,而不是C++的。由于C++支持函数重载,因此编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名;而C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般之包括函数名。 C++语言支持函数重载,C语言...

2018-03-07 10:41:32 263

转载 内存对齐原则

内存对齐原则:一、结构体变量的首地址能够被其最宽基本类型成员大小与对齐基数中的较小者所整除; 二、结构体每个成员相对于结构体首地址的偏移量(offset)都是该成员大小与对齐基数中的较小者的整数倍,如有需要编译器会在成员之间加上填充字节(internal adding); 三、结构体的总大小为结构体最宽基本类型成员大小与对齐基数中的较小者的整数倍,如有需要编译器会在最末一个成员之后加上填充...

2018-03-07 10:19:42 429

原创 内联函数和宏定义

宏定义的缺点1、容易出错,预处理器在拷贝宏代码时,常常会产生意想不到的边际效用,容易产生二义性。(在调用处进行展开,会出现运算符优先级的问题) 2、不可以调试。然而内联函数在debug版本里面,它根本不是真正的内敛,在release中才会成为真正的内敛。 3、在c++中,宏代码无法操作类的私有数据成员。原因是,预处理器不能进行类型安全检查和自动类型转换,预处理无法处理this指针的问题。...

2018-03-07 10:10:12 177 2

转载 LR的优缺点

LR的优缺点 优点 一、预测结果是界于0和1之间的概率; 二、可以适用于连续性和类别性自变量; 三、容易使用和解释;缺点 一、对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。​需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性; 二、预测结果呈“S”型,因此从log(o...

2018-03-04 16:50:29 8651

原创 最长无重复字符的子串

给定一个字符串,请找出其中无重复字符的最长子字符串。样例例如,在”abcabcbb”中,其无重复字符的最长子字符串是”abc”,其长度为 3。 对于,”bbbbb”,其无重复字符的最长子字符串为”b”,长度为1。方法一:class Solution {public: /* * @param s: a string * @return: an in...

2018-03-03 21:26:12 182

转载 堆和栈

一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类...

2018-02-28 19:39:30 149

转载 汇合层(Pooling 层)的作用

汇合层可以看成是一种用p-范数作为非线性映射的“卷积”操作。当p为正无穷时,就是最常见的最大值汇合。汇合层主要有三个功效: 1、特征不变性,汇合操作使模型更加关注是否存在某些特征而不是特征具体的位置,可以看做是一种很强的先验,是特征学习包含某种程度自由度,能容忍一些特征微小的位移。 2、特征降维。类似于做了维度约减,使模型可以抽取更广泛围的特征,减小了下一层输入大小,进而减小计算量和参数个数。...

2018-02-28 11:01:57 3237

转载 二分查找时间复杂度的计算(转)

二分查找的基本思想是将n个元素分成大致相等的两部分,去a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x< a[n/2],则只要在数组a的左半部分继续搜索x,如果x >a[n/2],则只要在数组a的右半部搜索x.时间复杂度无非就是while循环的次数!总共有n个元素,渐渐跟下去就是n,n/2,n/4,….n/2^k,其中k就是循环的次数,n,n/2,n...

2018-02-28 10:06:19 1504

原创 Const的作用

Const 作用1、修饰函数的输入参数 2、修饰函数的返回值(一般出现在链式表达上) 3、const+成员函数 4、修饰变量const常量与define宏定义的区别(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2)类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会

2017-11-26 21:01:28 218

转载 C++的多态性

多态性多态性的定义:只允许不同类的对象对同一消息作出相应反应,即同一消息可以根据发送对象的不同而采用的行为方式。这里的发送消息就是函数调用。 多态性分为:编译期多态(静态多态)和运行时多态(动态动态)。编译时多态编译期多态,正如其名,就是在编译期确定的一种多态性。这个在C++中主要体现在函数模板,这里需要注意的是函数重载和多态无关。// 例1:函数模板体现出编译期多态 #include <io

2017-11-20 16:43:59 408

原创 Windows下快速安装xgboost

Windows下快速安装xgboost开始安装网上的教程各种配置环境很复杂,其实完全可以不要那样操作。直接pip安装就好。就是需要先下载相应符合要求的xgboost的包即可。 如Windows10 Python3.6 64位系统,就下载xgboost-0.6-cp36-cp36m-win_amd64.whl。。然后 cmd下输入:pip install xgboost-0.6-cp36-cp3

2017-11-14 17:40:41 418

转载 C和C++如何动态申请内存和释放内存?有什么区别?

c使用malloc和free,c++则是new和delete。申请释放都差不多,那么它们之间到底是否有差别呢? C 语言的malloc() 和free() 并不会调用析构函数和构造函数。C++的 new 和 delete 操作符 是 “类意识” ,并且当调用new的时候会调用类的构造函数和当delete 调用的时候会调用析构函数。 注意:混合用malloc 和delete或者混合用new 和f

2017-11-14 16:09:43 1963

转载 虚基类、虚函数、纯虚函数的用法及其区别

c程序的内存布局是: 1. 代码段 code or text 2. 只读数据段 ro data 3. 已初始化读写数据段 rw data 4. 未初始化读写数据段 bss 5. 堆 heap 6. 栈 stack 有时候也这么说: 1. 栈 2. 堆 3. 全局区或静态区 ...

2017-11-14 15:48:37 2057 2

转载 Static用法

static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准). (1)局部静态变量 (2)外部静态变量/函数 (3)静态数据成员/成员函数一、局部静态变量在C/C++中, 局部变量按照存储形式可分为三种auto, static, register与auto类型(普通)局部

2017-11-14 15:23:26 231

转载 海量数据面试题整理

海量数据面试题整理  1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?  方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。  s 遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件(记为)中。这样每个小文

2017-11-09 20:16:35 228

原创 优先队列

删除优先级高的元素和插入元素,这种数据结构称为优先队列。优先队列的实现方法主要有三种:优先队列的各种实现在最坏的情况下运行时间的增长数量级 数据结构 插入元素 删除最大元素 有序数组 N 1 无序数组 1 N 堆 logN logNpriority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap()

2017-11-06 16:02:24 207

原创 栈的压入、弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)class Solution {public: bool IsPopOrder(vector<

2017-10-30 20:30:22 181

原创 插入排序的变形

题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。思路:如果这里不考虑空间的复杂度,可以用O(n),但是为了节约空间,我们采用插入排序的方法处理这个问题。代码如下:class Solution {public: //简单用插入排序的方法处理 //交换

2017-10-28 11:50:27 214

原创 比较排序算法的时间复杂度的下限

原因: 对于n个待排序元素,在未比较时,可能的正确结果有n!种。 在经过一次比较后,其中两个元素的顺序被确定,所以可能的正确结果剩余n!/2种(确定之前两个元素的前后位置的情况是相同,确定之后相当于少了一半的可能性)。 依次类推,直到经过m次比较,剩余可能性n!/(2^m)种。 直到n!/(2^m)<=1时,结果只剩余一种。根据斯特灵公式,此时的比较次数m为o(nlogn)次。 所以基于排

2017-10-26 21:48:48 5481

原创 排序算法

排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 排序算法的稳定性 排序算法稳定性的简单形式化定义为:如果Ai = Aj,排序前Ai在Aj之前,排序后Ai还在Aj之前,则称这种排序算法是稳定的。通俗地讲就是保证排序前后两个相等的数的相对顺序不变。对于不稳定的排序算法,只要举出一个实例,即可说明它的不

2017-10-24 21:39:09 249

转载 递归思想

递归是编程中一个相对难以理解但是却又很重要的概念. 对于从命令式语言开始学习编程的程序员天生对此有理解缺陷, 而对于从类似C++这种对函数式编程范式不友好的语言开始学习编程的程序员就更加如此了.(比如我自己) 碰巧(其实不巧)最近在读这本书(这本书国内没有引进, 网上只有巨贵的亚马逊卖的原版, 我读的是网上的中文版), Paul Graham在书中讲述的如何写递归函数的部分, 让我印象深刻. 因为原

2017-10-23 22:16:30 507

原创 4个类型转换相关的关键字

分别是static_cast、const_cast、reinterpret_cast、dynamic_caststatic_cast任何具有明确定义的类型转换,只要不包含底层const,都可以使用static_cast。在编译期间处理,但是没有运行时类型的检测来保证转换的安全性。在C++中,某些类型之间存在相关的依赖关系。若两种类型相关,则可在需要某种类型的操作数位置上,使用该...

2017-10-23 20:23:27 300

转载 海量数据中找出前k大数(topk问题)

前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个。建堆时

2017-09-15 10:12:11 1656

原创 最小子串覆盖

问题描述Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n). For example, S = “ADOBECODEBANC” T = “ABC” Minimum window is “BANC”.

2017-09-11 22:15:56 337

原创 RALL和智能指针

RAII机制RAII的本质内容是用对象代表资源,把管理资源的任务转化为管理对象的任务,将资源的获取和释放与对象的构造和析构对应起来,从而确保在对象的生存期内资源始终有效,对象销毁时资源一定会被释放。说白了,就是拥有了对象,就拥有了资源,对象在,资源则在。所以,RAII机制是进行资源管理的有力武器,C++程序员依靠RAII写出的代码不仅简洁优雅,而且做到了异常安全。特点在栈语义和操作符重载的支持下,C

2017-09-10 21:39:35 1074

原创 染色问题

思路:只要遍历一次,分别统计左侧的g的数量和右侧r的数量,就可以得到染色的次数。 代码如下:#include<string>#include<iostream>#include<vector>#include<algorithm>using namespace std;int gettimes(string str){ int rsum = 0; int gsum = 0

2017-09-10 20:06:23 582

原创 快乐数(环路检测)

问题描述写一个算法来判断一个数是不是”快乐数”。 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。 样例 19 就是一个快乐数。 1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1^2 + 0^2 +

2017-09-08 11:49:38 344

原创 乱序字符串

问题描述:给出一个字符串数组S,找到其中所有的乱序字符串(Anagram)。如果一个字符串是乱序字符串,那么他存在一个字母集合相同,但顺序不同的字符串也在S中。注意事项所有的字符串都只包含小写字母 对于字符串数组 [“lint”,”intl”,”inlt”,”code”] 返回 [“lint”,”inlt”,”intl”]思路:认为每一组乱序字符串都有唯一的相同的“ Hash 值 ”,但是这个值

2017-09-08 11:19:17 287

原创 哈希表的查找比红黑树更快吗?

这个主要取决于键的类型,因为哈希表需要考虑hash函数和operate==,而红黑树需要考虑operate<。这其中速度取决于hash函数与operate<的计算成本。一般情况下,两者的成本是相同的,因此哈希表查找会比红黑树查找要快。但是,要是考虑有序性操作,这个问题就没有意义了,因为哈希表无法高效的支持这些操作。

2017-09-06 19:47:51 3641

原创 C++中map,hash_map,unordered_map,unordered_set区别与联系

一、hash_map、unordered_map这两个的内部结构都是采用哈希表来实现。区别在哪里?unordered_map在C++11的时候被引入标准库了,而hash_map没有,所以建议还是使用unordered_map比较好。 哈希表的好处是什么?查询平均时间是O(1)。顾名思义,unordered,就是无序了。无序容器在存储上组织为一组桶,每个桶保存零个或多个元素。无序容器使用一个哈希函数

2017-09-05 19:21:15 2532

原创 接雨水

问题描述:Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it is able to trap after raining. 如上图所示,海拔分别为 [0,1,0,2,1,0,1,3,2,1,2,1], 返回 6.

2017-09-05 18:33:31 242

原创 装最多水的容器

装最多水的容器给定 n 个非负整数 a1, a2, …, an, 每个数代表了坐标中的一个点 (i, ai)。画 n 条垂直线,使得 i 垂直线的两个端点分别为(i, ai)和(i, 0)。找到两条线,使得其与 x 轴共同构成一个容器,以容纳最多水。注意事项容器不可倾斜。样例给出[1,3,2], 最大的储水面积是2.思想:可以理解容纳的水量是两条边最短的那条*两条边的距离。需要定义left和righ

2017-09-05 16:52:51 387

原创 买卖股票的最佳时机I、II、III、IV

买卖股票的最佳时机I假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。 思路:这个比较简单,只要遍历一次就好,同时更新最小的值。可以得到最大的利润。 代码如下:class Solution {public: /* * @param prices: Given an int...

2017-09-04 16:12:24 610 1

转载 最长回文子串

0. 问题定义最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果一个字符串正着读和反着读是一样的,那它就是回文串。下面是一些回文串的实例: 12321 a aba abba aaaa tattarrattat(牛津英语词典中最长的回文单词)1. Brute-force 解法对于最长回文子串问题,最简单粗暴的办法是:找到字符串的所有子串,遍历每一个子串以验证它们是否为回文串。一个子串

2017-09-03 11:41:14 301

原创 最长无重复字符的子串

最长无重复字符的子串给定一个字符串,请找出其中无重复字符的最长子字符串。 样例 例如,在”abcabcbb”中,其无重复字符的最长子字符串是”abc”,其长度为 3。 对于,”bbbbb”,其无重复字符的最长子字符串为”b”,长度为1。 要求时间复杂度为O(n)思路:如果找到所有的子串的话,在依次进行对比的话,时间复杂度不符合要求。从题目中可以看出,要求时间复杂度为O(n),那么遍历一次,同

2017-09-02 21:16:10 422

原创 蓄水池抽样算法 & 随机洗牌算法

蓄水池抽样算法和随机洗牌算法详解与证明。

2017-09-02 11:41:20 1015

原创 落单的数(落单的数 & 落单的数 II & 落单的数 III)

落单的数给出2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。样例给出 [1,2,2,1,3,4,3],返回 4挑战 一次遍历,常数级的额外空间复杂度思路1:利用异或的性质(自反性)自反性:a ^ b ^ a = b.异或运算最常见于多项式除法,不过它最重要的性质还是自反性:A^B^ B=A,即对给定的数A,用同样的运算因

2017-09-01 10:36:30 2729 1

xgboost-0.6-cp36-cp36m-win_amd64.whl

Windows下Python3.6 64位系统的xgboost的包。。xgboost-0.6-cp36-cp36m-win_amd64.whl

2017-11-14

caffe配置环境

caffe配置环境属性页和相应的dll文件

2017-08-02

空空如也

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

TA关注的人

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