C++
文章平均质量分 76
flyinghearts
这个作者很懒,什么都没留下…
展开
-
《编程之美》读书笔记21: 2.4 1的数目
<br />《编程之美》读书笔记21: 2.4 1的数目<br /> <br />问题:<br /> 给定一个十进制正整数N,写下从1开始,到N的所有整数,<br /> 然后数一下其中出现的所有“1”的个数。<br /> 例如:<br /> N=2,写下 1,2。这样只出现了 1 个“1”。<br />N=12,我们会写下 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12。这样 1 的个数是 5。<br /> <br /> 1. 写一个函数f(N)原创 2010-08-01 22:45:00 · 886 阅读 · 0 评论 -
编程之美读书笔记22 1.16 24点游戏
<br />编程之美读书笔记22 1.16 24点游戏<br /> <br />给定4个数,能否只通过加减乘除计算得到24?由于只有4个数,弄个多重循环,就可以。如果要推广到n个数,有两种思路:<br />①采用前缀/后缀表达式。相当于将n个数用n-1个括号括起来,其数目就是一个catlan数。最多可得到f(n) = (1/n * (2*n - 2)! / (n-1)! / (n-1)!) * n! * 4^(n-1) = 4^(n-1) * (2*n-2)! / (n-1)! 种表达式,当n=4时原创 2010-08-01 22:49:00 · 1425 阅读 · 0 评论 -
浅析类的“深拷贝”
㈠ new的基本知识:先说说new操作符:new有三种:new、operator new和placement new。 new是通过调用operator new这个库函数来实现内存分配的。new申请内存失败的话,会抛出异常std::bad_alloc,且返回值不为0,当然也可以指定不抛异常的new。直接new一个对象,对象是否初始化,与定义一个同类对象相似:new X; //调用类X的默认构造函数new X(x) //调用类X的构造函数用x来初始化。newint //变量未被初始化原创 2010-06-16 00:40:00 · 2806 阅读 · 1 评论 -
数组左旋转k位 —— C++标准算法库中最悲剧的函数:rotate
<br /> <br />要将一个数组的所有元素向左旋转k位,通常有三种算法:<br /> <br />算法1(分组交换):<br />若a长度大于b,将ab分成a0a1b,交换a0和b,得ba1a0,只需再交换a1 和a0。<br />若a长度小于b,将ab分成ab0b1,交换a和b0,得b0ab1,只需再交换a和b1。<br />不断将数组划分和交换,直到不能再划分为止。分组过程与求最大公约数很相似。<br /> 读写内存各 n到2*n次<br /> <br />算法2 (三次反转)<br />利用ba原创 2011-05-27 21:08:00 · 1381 阅读 · 0 评论 -
一道C++面试题的误区
一道很简单的题目,一般有下面4种解法:1 遍历两次,每次分别找出最小值和最大值。2 只遍历一次,每次取出的元素先与已找到的最小值比较,再与已找到的最大值比较。3 每次取两个元素,将较小者与已找到的最小值比较,将较大者与已找到的最大值比较。4 分治:将数组划分成两半,分别找出两边的最小值、最大值,则最小值、最大值分别是两边最小值的较小者、两边最大值的较大者。这4种算法,哪种效率最高,哪种最低?后两种算法只要进行1.5*N次比较,因而网上有不少解答都将它们列为最佳答案。但是,算法4用到了递归,而原创 2011-05-03 23:16:00 · 1988 阅读 · 1 评论 -
mingw gcc的头文件存在结构定义错误!!
准确的讲是mingw所用的sdk —— w32api,存在结构定义错误。 打开wingdi.h 定位到 tagGCP_RESULTSW 的结构定义位置, typedef struct tagGCP_RESULTSW { DWORD lStructSize; LPWSTR lpOutString; UINT *lpOrder; int原创 2013-03-21 21:47:46 · 1728 阅读 · 0 评论