随笔分类 -  剑指Offer

摘要:题目: 剑指offer的题目有挺多都挺典型的,就像这一道。不过书中的代码写的真是ugly,有很多题目LeetCode上都有,可以去LeetCode讨论区看看,经常有一些大神分享,写的代码真是高效、简洁、清晰,剑指offer上的代码不仅变量名定义又长又不知所云,让人看着就很不清晰明了,还有各种没必要的 阅读全文
posted @ 2018-09-16 00:08 丶Blank 阅读(454) 评论(0) 推荐(0)
摘要:题目描述:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。输入:输入可能包含多个测试样例。对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。。n保证是int范围内的一个整数。输出:对应每个测试案例,输出一个整数,代表输入的那个数中1的个数。样例输入:345-1样例输出:1232分析:(常规算法)把1和n做与运算,检验n最右一位是不是1,然后把1左移一位检验n右边第二位是不是1,依次进行,就可以得出n的2进制中有多少个1. (惊喜算法)把n-1与n做与运算,会把n最右边一个1变成0,那么n的二进制表示中有多少个1,就可以进行多少次这样.. 阅读全文
posted @ 2013-07-29 11:19 丶Blank 阅读(237) 评论(0) 推荐(0)
摘要:题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。斐波那契数列的定义如下:输入:输入可能包含多个测试样例,对于每个测试案例,输入包括一个整数n(1#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,j,k) for(int i = j ; i < k ; ++i)#define MAXV (1000)#define INF ( 阅读全文
posted @ 2013-07-25 20:50 丶Blank 阅读(265) 评论(0) 推荐(0)
摘要:题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。输入:每个输入文件包含一个测试样例。对于每个测试样例,第一行输入一个n(1=0)2. POP 从队列中pop一个数。输出:对应每个测试案例,打印所有pop操作中从队列pop中的数字。如果执行pop操作时,队列为空,则打印-1。样例输入:3PUSH 10POPPOP样例输出:10-1两个栈in和out,in是输入栈,out是输出栈。PUSH一个数压进in栈,POP一次从out栈弹出一个数,当out栈为空,in栈非空,则一次把in栈的数据全压进out栈,再从out栈弹出一个数。当out栈非空,则直接从out 阅读全文
posted @ 2013-07-25 20:39 丶Blank 阅读(219) 评论(0) 推荐(0)
摘要:题目描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。输入:输入可能包含多个测试样例,对于每个测试案例,输入的第一行为两个整数m和n(1#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define REP(i,j,k) for(int i = j ; i =1); ... 阅读全文
posted @ 2013-07-11 21:59 丶Blank 阅读(265) 评论(0) 推荐(0)