C++
sinat_31135199
一个坐着敲代码的人
展开
-
阿里巴巴2018年校招研发C++笔试
题目:给定一个字符串S和有效单词的字典D,请确定可以插入到S中的最小空格数,使得最终的字符串完全由D中的有效单词组成,并输出解。如果没有解则应该输出n/a例如输入S = "ilikealibaba"D = ["i", "like", "ali", "liba", "baba", "alibaba"]Example Output:输出"i like aliba原创 2017-08-26 09:32:35 · 2728 阅读 · 0 评论 -
LeetCode练习-字符串
一、palindrome-partitioning题目描述Given a string s, partition s such that every substring of the partition is a palindrome.Return all possible palindrome partitioning of s.For example, given s ="aa原创 2017-05-25 11:25:21 · 469 阅读 · 0 评论 -
LeetCode练习-动态规划算法(一)
一、Maximum Subarray(最大连续子序列和)二、Candy三、triangle四、climbing-stairs五、minimum-path-sum六、unique-paths七、unique-paths-ii原创 2017-04-13 08:42:39 · 673 阅读 · 0 评论 -
排序算法整理(C++):插入排序、交换排序、选择排序、归并排序
结合《王道》,整理了常用的排序算法,包括直接插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、二路归并排序。 各排序算法的性能平均表:代码如下:#include #define N 10using namespace std;void InsertSort(int arr[]);//直接插入排序,时间复杂度O(n2),空间复杂度O(1)void Sh原创 2017-05-08 15:43:05 · 852 阅读 · 0 评论 -
TLD目标跟踪算法学习(二)
转自:http://johnhany.net/2014/05/tld-the-theory/ 正如名字所示,TLD算法主要由三个模块构成:追踪器(tracker),检测器(detector)和机器学习(learning)。 对于视频追踪来说,常用的方法有两种,一是使用追踪器根据物体在上一帧的位置预测它在下一帧的位置,但这样会积累误差,而且一旦物体在图像中消失,追踪器就会永久失效,即使物转载 2017-04-25 15:05:00 · 21326 阅读 · 1 评论 -
LeetCode练习-动态规划算法(二)
八、interleaving-string题目描述Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.For example,Given:s1 ="aabcc",s2 ="dbbca",When s3 ="aadbbcbcac", return true.W原创 2017-05-15 21:19:08 · 362 阅读 · 0 评论 -
C++ 静态单例
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做转载 2017-05-07 10:41:19 · 2268 阅读 · 0 评论 -
C++ string类的使用
要想使用标准C++中string类,必须要包含#include // 注意是,不是,带.h的是C语言中的头文件using std::string;using std::wstring;或using namespace std;下面你就可以使用string/wstring了,它们两分别对应着char和wchar_t。string和wstring的用法是一样的,以下只用st转载 2017-05-24 17:43:57 · 343 阅读 · 0 评论 -
C++ STL基本容器的使用
转自:http://blog.csdn.net/conanswp/article/details/23297441C++中有两种类型的容器:顺序容器和关联容器。顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与vector类似,但是对首元素提供插入和删除的双向支持。关联容器主要有map和原创 2017-04-18 17:24:41 · 356 阅读 · 0 评论 -
计算机网络基础---常用知识
一、计算机网络模型1、OSI七层参考模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。2、数据链路层逻辑链路控制子层(LLC)、媒体访问控制子层(MAC);负责分配MAC地址(48位)。3、网络层负责对数据包进行路由选择和存储转发;协议:IP、IPX、ICMP、IGMP、ARP、PARP、OSPF;数据单位:分组或数据包。4、传输层第一个原创 2017-04-22 11:40:44 · 498 阅读 · 0 评论 -
LeetCode练习-字符串-length-of-last-word
题目描述Given a string s consists of upper/lower-case alphabets and empty space characters' ', return the length of last word in the string.If the last word does not exist, return 0.Note: A word i原创 2017-05-31 21:53:46 · 300 阅读 · 0 评论 -
LeetCode练习-字符串-longest-substring-without-repeating-characters
LeetCode练习-字符串-longest-substring-without-repeating-characters原创 2017-06-29 10:54:33 · 266 阅读 · 0 评论 -
完整的C++ 静态单例代码(带互斥量Mutex)
静态单例多线程编程 互斥量原创 2017-08-03 16:36:20 · 5985 阅读 · 4 评论 -
带指针成员类、析构函数出错、复制/赋值构造函数的注意事项
今天下午看面经,有个前辈说 面试被问到了 朋友圈-并查集,然后我发现自己以前没有看并查集,然后就去《王道》上看了看小米的那道朋友圈的面试题,也在网上看了一些大牛的关于并查集的博客。花了一个多小时大概了解了并查集,然后就编写朋友圈代码,代码编号了,然后发现有人把 这个写成了一个类,并且自己好长时间没有编写类这块的代码了,所以 打算花一点时间写一下。结果......悲剧了......各原创 2017-08-02 21:27:28 · 693 阅读 · 0 评论 -
小米:朋友圈,并查集
题目:假如已知有n个人和m对好友关系(存于数字r)。如果两个人是直接或间接的好友(好友的好友的好友...),则认为他们属于同一个朋友圈,请写出程序求出这n个人里一共有多少朋友圈。例如:n=5,m=3,r={{1,2},{2,3},{4,5}},表示有5个人,1和2是好友,2和3是好友,4和5是好友。则1,2,3属于一个朋友圈,4,5属于另一个朋友圈,结果为两个朋友圈。知识点:并查集。代原创 2017-08-02 17:54:41 · 1178 阅读 · 0 评论 -
LeetCode练习-动态规划算法-word-break
题目描述Given a string s and a dictionary of words dict, determine ifs can be segmented into a space-separated sequence of one or more dictionary words.For example, givens ="leetcode",dict =原创 2017-07-31 21:02:29 · 640 阅读 · 0 评论 -
STL内存管理器的分配策略
STL提供了很多泛型容器,如vector,list和map。程序员在使用这些容器时只需关心何时往容器内塞对象,而不用关心如何管理内存,需要用多少内存,这些STL容器极大地方便了C++程序的编写。例如可以通过以下语句创建一个vector,它实际上是一个按需增长的动态数组,其每个元素的类型为int整型:stl::vector array;拥有这样一个动态数组后,用户只需要调用push_back转载 2017-07-19 09:09:43 · 400 阅读 · 0 评论 -
C++ STL-deque基本原理
Deque 简介 deque是“double—ended queue”的缩写,和vector一样都是STL的容器,deque 是双端数组,而 vector 是单端的。 deque 在接口上和 vector 非常相似,在许多操作的地方可以直接替换。 deque 可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法,这个等下会详讲)。转载 2017-07-18 20:30:54 · 808 阅读 · 0 评论 -
C++ STL-Vector基本原理
vector的数据安排以及操作方式,与array非常相似。两者的唯一区别在于空间的运用的灵活性。array是静态空间,一旦配置了就不能改变;要换个大(或小)一点的房子,可以,一切琐细都得由客户端自己来:首先配置一块新空间,然后将元素从旧址一一搬往新址,再把原来的空间释还给系统。vector是动态空间,随着元素的加入,它的内部机制会自行扩充空间以容纳新元素。因此,vector的运用对于内存的合理利用转载 2017-07-18 20:13:08 · 453 阅读 · 0 评论 -
分段和分页内存管理
两者描述 打个比方,比如说你去听课,带了一个纸质笔记本做笔记。笔记本有100张纸,课程有语文、数学、英语三门,对于这个笔记本的使用,为了便于以后复习方便,你可以有两种选择。 第一种是,你从本子的第一张纸开始用,并且事先在本子上做划分:第2张到第30张纸记语文笔记,第31到60张纸记数学笔记,第61到100张纸记英语笔记,最后在第一张纸做个列表,记录着三门笔记各转载 2017-06-22 16:15:52 · 1216 阅读 · 0 评论 -
LeetCode练习-数组-palindrome-number
题目描述Determine whether an integer is a palindrome. Do this without extra space.click to show spoilers.Some hints:Could negative integers be palindromes? (ie, -1)If you are thinking of conve原创 2017-06-29 15:07:16 · 303 阅读 · 0 评论 -
LeetCode练习-分治法
一、Pow(x,n)描述:Implement pow(x, n).二、Sqrt(x)描述:Implement int sqrt(int x).Compute and return the square root of x.三、permutations:题目描述Given a collection of numbers, return all possible permutations.四、permutations-ii:题目描述Given a collection of numbers that mi原创 2017-04-10 11:35:58 · 804 阅读 · 0 评论 -
2017今日头条实习测试
题目一、两数组找相同的元素-array时间限制:C/C++语言 1000MS;其他语言 3000MS内存限制:C/C++语言 65536KB;其他语言 589824KB题目描述:给两个整数(int)数组,输出相同的元素。输入给定两个整型数组[a1, a2, ...., am],[b1, b2, ..., bn]输入格式如下,第一行给定第一个数组的大小m,接下来的m行原创 2017-04-20 16:52:55 · 1189 阅读 · 0 评论 -
CMake学习(三)
整理自《CMake实践》一,初识cmakecmake的特点主要有:1,开放源代码,使用类BSD许可发布。http://cmake.org/HTML/Copyright.html2,跨平台,并可生成native编译配置文件,在Linux/Unix平台,生成makefile,在苹果平台,可以生成xcode,在Windows平台,可以生成MSVC的工程文件。3,能够管理大型项目,原创 2017-04-08 16:29:20 · 623 阅读 · 0 评论 -
CMake学习(二)
参考http://www.cnblogs.com/lidabo/p/3974305.html一、基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、概念out-of-source build,与原创 2017-04-07 15:53:48 · 678 阅读 · 0 评论 -
CMake学习(一)
转自:http://blog.sina.com.cn/s/blog_74a459380102uxlz.html大家都知道,写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译转载 2017-04-07 15:16:53 · 345 阅读 · 0 评论 -
时间复杂度和空间复杂度详解
转自:http://blog.csdn.net/booirror/article/details/7707551/算法的时间复杂度和空间复杂度合称为算法的复杂度。1.时间复杂度(1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费转载 2017-02-15 20:57:20 · 767 阅读 · 0 评论 -
HOG特征显示C++ OpenCV代码
参考:http://download.csdn.net/detail/u011285477/9472067#include #include #include #include #include "opencvtest.h"using namespace std;using namespace cv;// HOGDescriptor visual_imagea原创 2016-12-05 22:15:22 · 8634 阅读 · 4 评论 -
OpenCV gpu模块样例注释:video_reader.cpp
video_reader.cpp#include #include #include #include #include #include #include #include #include #include int main(int argc, const char* argv[]){ if (argc != 2) return -1;原创 2016-11-08 21:54:13 · 3128 阅读 · 1 评论 -
华为训练题:输入n个整数,输出其中最小的k个
描述 输入n个整数,输出其中最小的k个。详细描述:接口说明原型:bool GetMinK(unsignedint uiInputNum, int * pInputArray, unsignedint uiK, int * pOutputArray);输入参数: unsignedint uiInputNum //输入整数个数int * pInputArray //输原创 2016-10-18 12:15:03 · 500 阅读 · 0 评论 -
华为训练题:整形数组合并
描述 题目标题:将两个整型数组按照升序合并,并且过滤掉重复数组元素详细描述:接口说明原型:voidCombineBySort(int* pArray1,intiArray1Num,int* pArray2,intiArray2Num,int* pOutputArray,int* iOutputNum);输入参数: int* pArray1 :整型数组1 int原创 2016-10-18 12:10:39 · 488 阅读 · 0 评论 -
初探OpenCV+GPU
转自:yang_xian521OpenCV的GPU模块只支持NVIDIA的显卡,原因是该部分是基于NVIDIA的CUDA和NVIDIA的NPP模块实现的。而该模块的好处在于使用GPU模块无需安装CUDA工具,也无需学习GPU编程,因为不需要编写GPU相关的代码。但如果你想重新编译OpenCV的GPU模块的话,还是需要CUDA的toolkit。由于GPU模块的发展,使大部分函数使用起来和转载 2016-11-06 10:21:18 · 13734 阅读 · 1 评论 -
CMake学习(四)
整理自《CMake实践》三,初试cmake – cmake的helloworld1,准备工作:首先,在/backup目录建立一个cmake目录,用来放置我们学习过程中的所有练习。mkdir -p /backup/cmake以后我们所有的cmake练习都会放在/backup/cmake的子目录下(你也可以自行安排目录,这个并不是限制,仅仅是为了叙述的方便)然后在cmake建立第一原创 2017-04-08 17:18:13 · 547 阅读 · 0 评论 -
CMake学习(五)
四,更好一点的Hello World从本小节开始,后面所有的构建我们都将采用out-of-source外部构建,约定的构建目录是工程目录下的build自录。修改Helloworld支持安装在本节开头我们定义了本节的任务如下:1,为工程添加一个子目录src,用来存储源代码;2,添加一个子目录doc,用来存储这个工程的文档hello.txt3,在工程目录添加文本文件CO原创 2017-04-08 23:04:26 · 338 阅读 · 0 评论 -
好未来测试题
题目一:[编程题] 字符串中找出连续最长的数字串读入一个字符串str,输出字符串str中的连续最长的数字串输入描述:个测试输入包含1个测试用例,一个字符串str,长度不超过255。输出描述:在一行内输出str中里连续最长的数字串。输入例子:abcd12345ed125ss123456789输出例子:123456789#include#include原创 2017-04-13 22:13:03 · 1842 阅读 · 0 评论 -
数据结构学习-(一)二叉树
二叉树基本代码:BinTreeClass.h文件#includeusing namespace std;class Node{ friend class BinTree;public: Node():lchild(0), rchild(0){} Node(int val, Node *lptr=0, Node *rptr=0) { data = val; lchi原创 2017-04-15 22:42:39 · 387 阅读 · 0 评论 -
头条校招(今日头条2017秋招真题)
题目描述头条的2017校招开始了!为了这次校招,我们组织了一个规模宏大的出题团队。每个出题人都出了一些有趣的题目,而我们现在想把这些题目组合成若干场考试出来。在选题之前,我们对题目进行了盲审,并定出了每道题的难度系数。一场考试包含3道开放性题目,假设他们的难度从小到大分别为a, b, c,我们希望这3道题能满足下列条件:a<= b<= cb - a<= 10c - b<= 10原创 2017-04-18 15:54:10 · 3905 阅读 · 0 评论 -
算法学习-(三)贪婪算法
贪婪算法例1:部分背包问题题目描述给定一个最大容量为m的背包和n种问题,有食盐、白糖、大米等。已知第i种食品最多有wi公斤,其价值为vi元/公斤,编程确定一个装货方案,使得装入背包中的所有食品的总价值最大。输入输出格式输入格式:第一行,两个整数m,n,表示背包容量和食品种类。接下去n行,为每种食品的价值和数量输出格式:价值:%d 取:%d输入输出样例原创 2017-04-13 11:34:01 · 482 阅读 · 0 评论 -
算法学习-(二)动态规划算法
动态规划算法-----------------------------------------------------------------------------------------------------------------------------------------例1、#includeusing namespace std;/**例原创 2017-04-12 09:26:24 · 384 阅读 · 0 评论 -
CMake学习(七)
整理自《CMake实践》六,如何使用外部共享库和头文件上一节我们已经完成了libhello动态库的构建以及安装,本节我们的任务很简单:编写一个程序使用我们上一节构建的共享库。1,准备工作:请在/backup/cmake目录建立t4目录,本节所有资源将存储在t4目录。2,重复以前的步骤,建立src目录,编写源文件main.c,内容如下:#include int main原创 2017-04-12 17:53:02 · 392 阅读 · 0 评论