给定一个十进制正整数N,写下从1开始到N的所有整数,然后数一下其中1出现的次数。 例如: N=2,写下1,2。1只出现了1次。 1、写一个函数f(N),返回1到N之间,出现的“1”的个数,比如f(12)=5;…
分类:编程之美
《编程之美-微软技术面试心得》这本书中的1.11节的转化问题研究:nim拈游戏研究
《编程之美-微软技术面试心得》这本书中的1.11节有一个问题: 一堆石块,A和B两个人从里面拿,每次只能拿一个或者任意连续的两个,最后拿到的算赢,先拿者是否有必胜策略: 这个问题较为简单:先拿者有必赢策略,只要按照如下规…
编程之美—字符串移位包含问题
验证字符串s2通过移位能否包含字符串s1。 (1)逐一移位,验证是否包含 (2)只需验证s2s2是否包含s1即可。 s2每隔strlen(s2)次移位后又回到s2,相当于移位后的字符串在 s2~s2s2之间…
《编程之美》--中国象棋将帅问题
最近在看微软研究院出版的《编程之美》一书,对于该书中提到的一些问题,特别感觉兴趣,比如下面这个问题: 分析: 思考一下,可以这样来解决, —————…
《编程之美》杂谈
面试考察 基础知识 编程能力和思维(算法,手写代码) 自我了解和企业文化的了解 CPU占有率问题 首先确定好CPU占有率的定义,如何查看(通过任务管理器,定时刷新,占有率 就是在这个周期内CPU工作的时间的占比) 确定好…
编程之美——寻找数组中最大的K个数
从别人的那里转过来,这种题目,其实就是需要使用分治方法 编程之美上的寻找N个数中最大的前K数,给出了一种算法,我认为比较好: 算法是这样写的: 假设N个数存储在数组S中,我们从数组S中随机选出…
《编程之美》笔记-烙饼排序的思考
最近学习《 编程之美》第1.3节,最初自己看完题目在 Linux下使用 C语言进行了实现。其中题目要求输出最优化的方案(题目如下图),自己并没有想到很好的最优方案,因此只是按照自己的理解先进行了实现。 实现方法如下: &…
编程之美-程序改错及扩展问题
原文的大意是这样的,要求写一个二分查找算法,并且当要查找的数出现不止一次时,返回最后那个数的下标。然后给你一段有错的代码,请你改。 这段有错的代码是这样的(我作了简化): /* b和e是查找区间的两端,v是要找的数 */…
编程之美-程序理解和时间分析
题目如下: 阅读以下C#代码,回答问题: using System; using System.Collections.Generic; using System.Text; namespace FindTheNumbe…
编程之美之一摞烙饼的排序1
拿到这个问题, 第一反应是利用分治的算法思想, 每次把当前的最大的一块烙饼放到指定位置 ,这样的思想非常简单,实现也非常容易。但是这只是提供了,问题的一个可行解,看完书中的内容之后发现,题目中要求的是最优化的输出过程,我…
编程之美之买书问题
拿到这个问题,我的第一反应是用贪心算法,优先满足不同种类多的,这样打的折扣比价多。但是,看了书中的分析发现,* 我们设定的贪心策略实际上是有问题的, ie 在买 5 + 3 本的时候会出错。 看到这里,书上说可以利用改进…
写JAVA程序实现CPU使用率保持在50%(附加画正弦函数)
《编程之美》当中的引子。 如何编程实现控制CPU的使用率维持在50%? 直接分为busy和idle时间。 因为是取平均值,所以两者各占一半,即可实现50%。 笨方法: public static void main(St…