![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
a819721810
这个作者很懒,什么都没留下…
展开
-
简单的跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解释:假设跳到最后一阶为n,则前面有可能是n-1或者n-2,所以一路递推下去可以得到a[i]=a[i-1]+a[i-2].import java.util.Scanner;public class Solution1 { public static void main(String[] ar原创 2015-04-04 14:35:14 · 471 阅读 · 0 评论 -
矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解释:设当为n时,方法数为a[n],所以当为n时,方法是a[n-1],然后和一个横着的矩形还有a[n-2]加上2个竖着的矩形,又因为a[n-2]上面的矩形不能横着,不然就变成a[n-1],所以为方法总数为a[n-1]+a[n-2].import java.uti原创 2015-04-06 13:07:52 · 421 阅读 · 0 评论 -
替换空格
题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。import java.util.Scanner;public class Replacetheblankspace { public static void main(String[] args) { Scanner原创 2015-04-06 15:11:01 · 358 阅读 · 0 评论 -
二维数组中的查找
题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。import java.util.Scanner;public class a { static Scanner in=new Scanner(System.in); static int m=in.nextI原创 2015-04-06 14:36:17 · 381 阅读 · 0 评论 -
变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解释:当青蛙跳上一个n级的台阶时,设跳上n阶梯的跳法有a[n]种,则 a[n]=a[n-1]+a[n-2]+a[n-3]…..a[2]+a[1]+1;因为可以一次性直接跳上n阶梯,所以后面要加1,其实从a[3]开始每一个后面都加过1的。import java.util.Scan原创 2015-04-04 17:24:24 · 367 阅读 · 0 评论 -
从尾到头打印链表
题目描述输入一个链表,从尾到头打印链表每个节点的值。返回新链表的头结点。/*** struct ListNode {* int val;* struct ListNode *next;* ListNode(int x) :* val(x), next(NULL) {* }* };*/ class Solu原创 2015-05-07 21:25:15 · 601 阅读 · 0 评论 -
用两个栈实现队列
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。class Solution{public: void push(int node) { stack1.push(node); } int pop() { if(stack2.empty()) {//第二个栈为空时 while(!stack1.empty()) {原创 2015-05-18 13:05:52 · 517 阅读 · 0 评论 -
从上往下打印二叉树
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/c原创 2015-05-22 19:18:44 · 643 阅读 · 0 评论 -
按之字形顺序打印二叉树
题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : va原创 2015-06-07 09:11:00 · 611 阅读 · 0 评论