…
分类:编程之美
《编程之美》学习笔记——2.4 1的数目
一、问题 给定一个十进制正整数N,统计从1开始,到N(含N)的所有整数中出现的所有“1”(包含各个位)的个数。 二、解法 版本一:最简单的思路,就是从1到N进行遍历,统计逐个数上“1”的个数并…
《编程之美》学习笔记——2.17数组循环移位
一、问题 设计一个算法,把一个含有N个元素的数组循环右移K位,要求时间复杂度为O(N),且只允许使用两个附加变量。 问题分析: 输入:长度为N的原数组,K 输出:循环右移K位后的数组 …
《编程之美》学习笔记——2.7最大公约数问题
一、问题 求两个正整数的最大公约数。如果两个正整数都很大,有什么简单的算法吗? 问题分析: 什么是最大公约数? (参考维基百科:http://en.wikipedia.org/wiki/Greatest_c…
《编程之美》学习笔记——2.19区间重合判断
一、问题 给定一个源区间[x,y](y>=x)和N个无序的目标区间[x1,y1],[x2,y2],…,[xn,yn],判断源区间[x,y]是不是在目标区间内。 例: 给定源区…
数据驱动编程之表驱动法
本文示例代码采用的是c语言。 之前介绍过数据驱动编程 《什么是数据驱动编程》。里面介绍了一个简单的数据驱动手法。今天更进一步,介绍一个稍微复杂,更加实用的一点手法——表驱动法。 关于表驱动法,在《unix编程艺术》中有提…
《编程之美》之我解
[题目 1] 给定两个正整数(二进制形式表示)A和B,问把A变为B需要改变多少位(bit)?也就是说,整数A和B的二进制表示中有多少位是不同的? [我解 1] A^B(A异或B)的结果R中为1的位表示,A和B…
双指针策略(《编程之美》3.5 最短摘要生成)
本文源自《编程之美》3.5 最短摘要生成一课。 题意:在一个字符串中,找一些目标字符串集合,找到包含所有目标字符串的最小连续子串。题目虽然叫做“…
编程之美-不要被阶乘吓到
求N!的二进制表示中最低位1的位置。 最笨的莫过于对N!直接移位了,然后找到1的位置。 [cpp] view plain copy print ? #include&…
回顾微软编程之美2016复赛
前言 为编程之美的比赛也忙活了好几天,虽说结果也不是很好吧,还是要来回顾一下这几天的过程,整理下收获,记录下这个过程吧。 初赛没什么好说的,莫名其妙就进了复赛,也没做出来几道题,惟一的经验就是编程的基本功还是要差些,以后…
编程之美——饮料供货
1、题目:在微软亚洲研究院上班,大家早上来的第一件事是干啥呢?查看邮件?No,是去水房拿饮料:酸奶,豆浆,绿茶、王老吉、咖啡、可口可乐……(当然,还是有很多同事把拿饮料当做第二件事)。 管理水房的阿姨们每天都会准备很多的…
状态压缩与动态规划(DP)---编程之美---瓷砖覆盖地板---POJ2411
一、状态压缩 从状态压缩的特点来看,这个算法适用的题目符合以下的条件: 1.解法需要保存一定的状态数据(表示一种状态的一个数据值) ,每个状态数据通常情况下是可以通过 2 进制来表示的。这就要求状态数据的每个单元只有两种…