
读书笔记
文章平均质量分 72
210在吾道
这个作者很懒,什么都没留下…
展开
-
《编程之美》读书笔记(四)——数组分割
题目分析:题意转化为找出n个元素组成的子数组,使得其求和尽可能接近SUM/2 (SUM是2n个元素之和)解法一:呃。。还真没想过这样解,跳过。解法二:将目标进一步缩小到小于SUM/2但是尽可能接近SUM/2。算法思路也比较直接,动态规划呗。分析题目可以知道,其实题目中蕴含两个维度:一是全集2n个元素,二是子集n个元素。所以可以设定第一维度k,限定元素全集从1个元原创 2013-09-03 00:18:22 · 648 阅读 · 0 评论 -
《编程之美》读书笔记(三)——阶乘结果末尾"0"的个数
对于第一个问题,我起初的思路如下: 能贡献末尾“0”的数有两类,一类是自身以“0”结尾,例如,10,560,1000等,另一类是个位数是2和5相乘得到。因为是阶乘,从1到N,所以对于每个个位为5的数,总能找到一个其他位相同个位为2的数与之匹配。所以,只需要去数[1,N]中以“0”结尾的数总共多少个“0”,再加上N/10+(N%10 从1到N,出现“0”结尾次数为N/10;出原创 2013-07-26 18:41:34 · 779 阅读 · 0 评论 -
《编程之美》读书笔记——[1~N]出现“1”的次数
拿到题目,最开始就是想着先不管效率先解出来,想法跟书上的第一种解法一样。然后开始想怎样提高效率,naive方法的问题在于是对1~N每个数逐个地考察,没有考虑前后数之间的关联,没有充分利用1~N这样连续区间的特点。我最开始联想到学《算法导论》课的时候讲平摊分析时候那个“二进制数平摊代价”计算,也是从逐位地考虑,但是那个是考虑从“0”变成“1”的时候的代价,跟本题十进制中“1”原创 2013-07-28 18:16:33 · 612 阅读 · 0 评论 -
《编程之美》读书笔记(二)——二进制数中“1”的个数
题目下面一段话直接点出了考察的目的,最求效率(时间复杂度)最优。题目思路由直观到巧妙【狡猾】。我第一想到的是第二种位移的方法,反而第一种方法除法不会想。这里要注意的是,八字节无符号整形变量的表示方式,数据类型用的是BYTE,切记不要直接把BYTE赋值到int,因为int是有符号整数,在赋值过程中,如果BYTE最高位是1会被理解成负数,赋值到int类型后就变成负数,并且以原创 2013-07-26 15:31:05 · 760 阅读 · 0 评论 -
《编程之美》读书笔记(一)——CPU利用率控制
第一个简单的例子,思路: window任务管理器中的CPU利用率是怎样统计得到的(刷新周期1s内,CPU忙时间/刷新周期) =〉CPU忙指什么(执行指令),CPU什么时候闲(Idle process) =〉怎样[编程]让CPU忙,怎样让CPU闲? (空循环跑:忙; Sleep:闲) =〉怎样编程控制忙的比例,让比例为想要的值(控制空循环的次数,控制闲的时间)原创 2013-07-26 15:25:14 · 737 阅读 · 0 评论