
C++
文章平均质量分 77
liql2007
Sina微博liql2007
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
一.类型简介1.CString:动态的TCHAR数组。它是一个完全独立的类,封装了“+”等操作符和字符串操作方法,换句话说就是CString是对TCHAR操作的方法的集合。2.LPCTSTR:常量的TCHAR指针,其定义为 1typ转载 2011-08-03 19:34:04 · 885 阅读 · 0 评论 -
鹊桥的长度
问题:@陈利人有n对喜鹊。每一对可以表示为(x,y),x、y是喜鹊的编号,并且任意一对,x总是小于y。(c,d)可以连接在(a,b)之后,当且仅当bps:这里鹊桥的长度为能连接在一起的喜鹊的个数。分析I:在二维上,可以构造一个拓扑图(有向图),边长都为1,然后找出一条最长路径。时间复杂度O(n^2)。分析II:在一维上,先将喜鹊按x排序,原创 2013-08-14 12:32:33 · 1064 阅读 · 0 评论 -
k个数相加和为m的种数
问题I:盒子中有n张卡片,上面的数字分别为k1,k2,...,kn。你有4次机会,每抽一次,记录下卡片上的数字,再将卡片放回盒子中。如果4个数字的和等于m。则你就赢得游戏,否则就是输。直觉上,赢的可能性太低了。请你给出程序,判断是否有赢的可能性。分析:要求的是能够赢得游戏概率,很明显,若能够求出4个数子和为m的种数(记作T),那么赢的概率就为T/n^4。这里,将核心部分扩展为问原创 2013-08-13 16:35:17 · 4841 阅读 · 1 评论 -
判断字符串是否包含另一字符串的全排列
问题:给定两个字符串A和B,判断A中是否包含由B中字符重新排列成的新字符串。例如:A=abcdef, B=ba,结果应该返回true。因为ba的排列ab,是A的子串。本问题来自:微信公众账号“待字闺中”。分析:设A的长度为n,B的长度为m很直观的做法是:1)先分析B中的字符有有哪些,每种字符出现的多少次。2)遍历A中每个长度为m的子串,统计字符,然后与B的统计结果对原创 2013-09-29 17:07:01 · 3005 阅读 · 0 评论 -
《C++ Primer (5th Edition)》笔记-Part III . Tools For Class Authors
注:本文以《C++ Primer(英文版)》(5th Edition)为参考。笔记的其他部分包括:《C++ Primer (5th Edition)》笔记-Part I、《C++ Primer(5th Edition)》笔记-Part IIPart III Tools For CLass AuthorsChapter 13 Copy Control13.1 与原创 2013-10-03 15:22:14 · 2033 阅读 · 2 评论 -
《C++ Primer (5th Edition)》笔记-Part II . The C++ Library
注:本文以《C++ Primer(英文版)》(5th Edition)为参考。Part II. The C++ LibraryChapter 8. The IO Library8.1 针对wchar_t,定义了以w开头的IO类,如wistream、wifstream、wistream、wcin等等。8.2 IO 对象不可赋值,不可拷贝。一般也不定义其const refere原创 2013-10-01 01:50:26 · 2035 阅读 · 0 评论 -
《Effective C++(第三版)》-笔记
1. 让自己习惯C++条款01: 视C++为一个语言联邦1.1 C++ 是一个多重泛型编程语言(multiparadigm programming),支持:过程形式(procedural),面向对象形式(object-oriented),函数形式(functional),泛型式(generic),元编程(metaprogramming)。1.2 将C++看做主语言,那么他就四种次语言组原创 2013-10-08 01:00:25 · 1538 阅读 · 1 评论 -
《C++ Primer (5th Edition)》笔记-Part IV. Advanced Topics
注:本文以《C++ Primer(英文版)》(5th Edition)为参考。笔记的其他部分包括:《C++ Primer (5th Edition)》笔记-Part I、《C++ Primer (5th Edition)》笔记-Part II、《C++ Primer (5th Edition)》笔记-Part IIIPart IV. Advanced Topics原创 2013-10-05 19:03:37 · 2257 阅读 · 0 评论 -
《C++ Primer (5th Edition)》笔记-Part I . The Basics
注:本文以《C++ Primer(英文版)》(5th Edition)为参考。Chapter 1 Getting Started略。。。Part I The BasicsChapter 2 Variables and Basic Types2.1 Arithmetic types分为两类:integral types & floating-point types.2.2 新原创 2013-09-28 01:45:44 · 2342 阅读 · 0 评论 -
和为N的种数——背包变形
问题:给一正数数组A,一正整数n,数组A的元素相加能够得到和为n的种数。例如:数组为[5, 5, 10, 2, 3] ,n 为 15,那么种数就为4,分别为:(5 + 10, 5 + 10, 5 + 5 + 2 + 3, 10 + 2 + 3)。分析:最直接的方法就是枚举,但这样的时间复杂度将是指数级的,太暴力了!其实,这一问题与01背包问题类似。用f[原创 2013-08-07 14:30:23 · 969 阅读 · 0 评论 -
丑数
定义:只包含因子2、3和5的数称作丑数(Ugly Number)。那么丑数依次为:1 2 4 5 8 10 16 20 25 32 40 50 64 80 100 125 128 160 200 250...问题:找出前n个丑数。分析I:最直接,最暴力的方法是单独判断每个数是否是丑数,太丑陋了,这里就不说了。分析II:这个问题,可以用原创 2013-08-12 11:38:56 · 1048 阅读 · 0 评论 -
寻找波谷
问题:给定数组A[1...n],满足:n>=3, A[1]>=A[2], A[n] >= A[n-1]。若A[i]为波谷,则:A[i-1] >= A[i] 请在O(logN)时间内,找到数组中的一个波谷。分析:根据数据数组的两端的情况,可知:整个区间必存在波谷。要求O(logN),首先想到二分:设区间为【left,right】,满足left>= left+原创 2013-07-22 11:30:57 · 1376 阅读 · 0 评论 -
类似杨辉三角问题——第n杯水
问题:有一座金字塔,从上到下,第一层有一个杯子、第二层有两个杯子,依次类推。对杯子进行编号,有如下的形状: 1 2 34 5 6每个杯子的容量为C升,从塔顶倒下L升水,当1号杯子满了之后,会等量溢出到2号和3号杯子。当2号和3号满了,2号溢出到4号和5号,3号溢出到5号和6号,注意5号接受来自两个杯子的水。依次类推。给定C和L,请问,第n杯里有多少水。fro原创 2013-07-31 02:09:35 · 1696 阅读 · 0 评论 -
三路划分
问题:对一个只可能含有1、2、3三种值的数组,按升序排序。另一种常见问法:有一个只可能含有红、绿、蓝三种颜色的序列,进行分类,使红色都位于最左边,蓝色都位于最右边。解: 实际是对快排中用到的二路划分的扩展——三路划分。设原数组为A, 有n个元素。使用三个指针left, middle, right, 那么A[0]...A[left-1]的值都为1A[left]...A原创 2013-07-21 11:33:07 · 1581 阅读 · 1 评论 -
N个正整数连接成最大的数
题目:给出N个正整数,如 {7, 959, 95, 71, 1}, 求将这些数连接起来所组成的最大的数,即959957711。变形:给出N个由0...9组成的字符串(开头可能为零),求将这些字符串连接起来,所组成的最大的数。代码:#include #include #include #include using namespace std;string MaxNum原创 2013-07-19 12:58:33 · 1816 阅读 · 1 评论 -
出界的概率
问题:一个小岛,表示为一个N×N的方格,从(0,0)到(N-1, N-1),一个人站在岛上,位置(x, y),他可以上下左右走,一步一个格子,他选择上下左右的可能性是一样的。当他走出小岛,就意味着死亡。假设他要走k步,请问他死亡的概率有多大?分析I:要求概率,首先想到计算出所有路径的种数N,以及出界的路径种数M,死亡的概率就是N/M了。计算路径种数可以用DP的思想:原创 2013-07-26 12:50:46 · 869 阅读 · 0 评论 -
最长的含有相同数目的01子串 & 括号匹配问题
题目:给定一个字符串,字符串中只包含‘0’和‘1’。请找到一个最长的子串,使得其中0和1的数量是相同的例1:“10101010” 结果就是其本身例2:“0011110”结果是“0011”变形:给定一个字符串,字符串只包含‘(’和‘)’,请找出一个最长的子串,使得该子串满足括号法则。例1:“(()())()()”结果为自身例2:“())()()(”结果为“()()"原创 2013-07-20 09:16:42 · 3159 阅读 · 1 评论 -
原地归并
问题I:传统归并排序需要O(n)的空间发杂度,但是否能够实现原地归并排序呢?即O(1)的空间复杂度。时间复杂度还是否是O(logn)?对于这个问题,网上有很多资料,讲的比较清楚的有下面这个帖子:http://www.ahathinking.com/archives/103.html我们知道,无论是基于单个记录的两两归并,还是利用插入排序先得到较长的子序列然后归并,在算法原创 2013-08-03 19:32:42 · 1301 阅读 · 3 评论 -
std::sort与qsort
std::sort与qsort的性能对比,一般来说std::sort要由于qsort的qsort没有指定实现原创 2014-09-05 00:28:19 · 1480 阅读 · 0 评论