剑指offer
Alenlyx
这个作者很懒,什么都没留下…
展开
-
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
Q:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。A:该问题实质是斐波那契数列求和,递推公式为 f(n)=f(n-1)+f(n-2);Class Soulation{public int tiaotaijie(int n){ if(n==0){ return 0; } if(n==1){ return 1; } if(n==2){...原创 2019-03-17 18:18:36 · 468 阅读 · 0 评论 -
斐波那契数列
package nums;public class Feibonaqi { public static void main(String[] args) { Feibonaqi f = new Feibonaqi(); int result = f.feibonaqi(5); System.out.println(result); f.feibonaqi1(5); }...原创 2019-03-16 11:40:18 · 180 阅读 · 0 评论 -
顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 45 6 7 89 10 11 1213 14 15 16则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.package nums;import java.util.ArrayLis...原创 2019-03-16 11:25:29 · 111 阅读 · 0 评论 -
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
Q:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。A:f(n) = f(n-1)+f(n-2)+…+f(1)f(n-1) = f(n-2)+ f(n-3)…+f(1)两式相减,得到f(n) = 2*f(n-1).class Soulation{ public int JumpFloor2(int n){ if(n<...原创 2019-03-17 18:24:52 · 1982 阅读 · 0 评论 -
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
类似于青蛙跳台阶,当n=1时,只有一种横向排列的方式。当n等于二时,22有两种选择,横向或者是竖向。当n等于3的时候对于23来说,如果选择的是竖向排列,则剩下的就是22排列,如果选择的是横向,则对于2n剩下的则只有1*n的一种选择。所以依次类推,找到迭代RectCover(target-1)+RectCover(target-2)。class Soulation(int n){ public ...原创 2019-03-17 18:32:29 · 1149 阅读 · 1 评论 -
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
class Soulation{ public double Power(double base,int exponent){ double result = 1.0; for(int i = 0;i<Math.abs(exponent);i++){ result *= base; } if(exponent>0){ retu...原创 2019-03-17 18:50:53 · 127 阅读 · 0 评论 -
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
方法一:public class Number{ public int NumberOf1(int n){ int count = 0; while(n!=0){ n=n&(n-1); count++; } return count; }}方法二:public class Soluation{ public int Number(int n){...原创 2019-03-17 18:58:54 · 360 阅读 · 0 评论 -
二维数组的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Soulation{ public boolean find(int [] [] nums ,int target){ for(int i = 0;i<nums.le...原创 2019-03-17 19:17:51 · 200 阅读 · 0 评论 -
替换空格
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。public class Soulation{ public String replaceSpace(StringBuffer str){ for(int i = 0;i<str.length;i++){ char a ...原创 2019-03-17 19:27:09 · 124 阅读 · 0 评论