算法题型 :其他
剑指offer中一些零散的问题
Stephen.zhou
这个作者很懒,什么都没留下…
展开
-
剑指offer (47)
题目 : 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路 :1.需利用逻辑与的短路特性实现递归终止。2.当n==0时,(n>0)&&((sum+=Sum_Solution(n-1))>0)只执行前面的判断,为false,然后直接返回0;3.当n>0时,执行sum...原创 2020-02-07 21:48:06 · 86 阅读 · 0 评论 -
剑指offer (45)
题目 : LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张_)…他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子…LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13。上面的5张...原创 2020-02-07 21:40:53 · 108 阅读 · 0 评论 -
剑指offer (31)
题目 : 求出113的整数中1出现的次数,并算出1001300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 n 中1出现的次数)。思路 :/像类似这样的问题,我们可以通过归纳总结来获取相关的东西。首先可以先...原创 2020-02-06 21:06:45 · 96 阅读 · 0 评论 -
剑指offer (30)
题目 : HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...原创 2020-02-06 20:57:50 · 105 阅读 · 0 评论 -
剑指offer (19)
题目 : 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.思路 :用旋转魔法的方式,一直取出第一行;例如1 2 34 5 67 8 9输出并删除第一行后,变为4...原创 2020-02-06 17:25:25 · 80 阅读 · 0 评论 -
剑指offer (12)
题目 : 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。保证base和exponent不同时为0思路 :1.全面考察指数的正负、底数是否为零等情况。2.写出指数的二进制表达,例如13表达为二进制1101。3.举例:10^1101 = 10^0001 * 10 ^0100 * 10^10004.通过&1和>&...原创 2020-02-06 15:45:08 · 90 阅读 · 0 评论 -
剑指offer (11)
题目 :输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思路 一: 用1(1自身左移运算,其实后来就不是1了)和n的每位进行位与,来判断1的个数 public static int numberOf1(int n) { int count = 0; int flag = 1; while (flag != 0) { if ((n & flag) !=...原创 2020-02-06 15:39:20 · 122 阅读 · 0 评论 -
剑指offer (10)
题目 : 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路 :依旧是斐波那契数列2n的大矩形,和n个21的小矩形其中target2为大矩阵的大小有以下几种情形:(1)target <= 0 大矩形为<= 20,直接return 1;(2)target = 1大矩形为21,只有一种摆放方法,retu...原创 2020-02-06 15:33:46 · 43 阅读 · 0 评论 -
剑指offer (9)
题目 : 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路 :(1)这里的f(n)代表的是n个台阶有一次1,2,…n阶的 跳法数。(2)n = 1时,只有1种跳法,f(1) = 1(3)n = 2时,会有两个跳得方式,一次1阶或者2阶,这回归到了问题(1), f(2)=f(2-1)+f(2-2)(4) n = 3时,会...原创 2020-02-06 15:21:34 · 89 阅读 · 0 评论 -
剑指offer (8)
题目 : 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路 :对于本题,前提只有 一次 1阶或者2阶的跳法。a.如果两种跳法,1阶或者2阶,那么假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1);b.假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2)c.由a\b假设可以得出总跳法为:...原创 2020-02-06 15:07:31 · 55 阅读 · 0 评论 -
剑指offer (7)
题目 : 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39思路 : 斐波拉契数列 1 , 2, 3, 5, 8 ,13 ,21 public int fibonacci(int n) { int [] num = new int [40]; num[0] = 0; num[1] = 1; for (int ...原创 2020-02-06 15:02:17 · 67 阅读 · 0 评论