自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 剑指offer-11.跳台阶

题目描述(初级) 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 思路解析: 当 n = 1 时,只有一种跳法: 当 n = 2 时,有两种跳法: 跳 n 阶台阶,可以先跳 1 阶台阶,再跳 n-1 阶台阶;或者先跳 2 阶台阶,再跳 n-2 阶台阶。而 n-1 和 n-2 阶台阶的跳法可以看成子问题,该问题的递推公式为: /...

2019-06-21 11:18:26 117

原创 剑指offer-10.矩形覆盖

题目描述 我们可以用 2X1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2X1 的小矩形无重叠地覆盖一个 2Xn 的大矩形,总共有多少种方法? 思路解析 当n为1时,只有一种覆盖方式 当n为2时,有两种覆盖方式 覆盖 2Xn 的大矩形,可以先覆盖 2X1 的矩形,再覆盖 2X(n-1) 的矩形;或者先覆盖 2X2 的矩形,再覆盖 2X(n-2) 的矩形。而覆盖 2X(n-1) 和...

2019-06-20 11:18:15 115

原创 剑指offer-9.斐波那契数列

题目描述 求斐波那契数列的第 n 项,n <= 39。 思路解析:两种方式 1.利用公式求取每一个f(n)的值,并利用一个n+1的数组来存储每一个f(n)的值,此方法空间复杂度为O(n) 2.利用两个变量存储f(n-1)和f(n-2)的值,利用公式f(n)=f(n-1)+f(n-2),并不断更新f(n-1)与f(n-2)的值,此方法空间复杂度为O(1) /// <summary...

2019-06-20 10:43:19 102

原创 剑指offer-8.两个栈实现队列

题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 解题思路: 两个栈,一个栈用于存储数据(入栈)inStack,另一个栈用于弹出数据(出栈)outStack,入队列则将数据存储到inStack栈中,出队列的话,先判断outStack栈中是否有数据,有的话直接出栈即可,若无数据,则将inStack中的数据全部弹出压入到outStack中,再出栈即可 //...

2019-06-19 17:36:24 98

原创 剑指offer-7.二叉树下一个节点

题目描述: 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 public class TreeLinkNode { public int val; //指向左子树 public TreeLinkNode left; //指向右子树 ...

2019-06-18 11:12:32 179

原创 剑指offer-4.从尾到头打印链表

题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 解题思路: 1.通过递归来实现从尾到头打印链表 2.通过重建逆序链表实现从尾到头打印链表 3.利用栈先进后出的性质将链表元素全部入栈,实现从尾到头打印 /*第一种实现方式:通过递归来实现从尾到头打印链表 /// <summary> /// 递归实现链表从尾到头打印 /// </summary&g...

2019-06-16 11:43:34 84

原创 剑指offer-3.替换空格

题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为A B.则经过替换之后的字符串为A%20B。 解题思路: 由于一个空格,需要填充%20,因此,因此当遍历到一个空格时,需要在尾部填充两个任意字符。 因此,首先对字符串进行遍历确定字符串中的空格数量,遍历到一个空格,则在字符串尾部添加两个空格,以此类推。 令p指向字符串原来的末尾位置,q 指向字符串现在的末尾位置。...

2019-06-15 17:01:47 84

原创 剑指Offer-2.二维数组中的查找

题目描述:给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。要求时间复杂度 O(M + N),空间复杂度 O(1)。其中 M 为行数,N 为 列数。 Consider the following matrix: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, ...

2019-06-15 15:40:20 81

原创 剑指offer-1.数字中重复的数字

剑指offer-6.数字中重复的数字 题目描述: 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 Input: {2, 3, 1, 0, 2, 5} Output: 2 解题思路: 数组元素在 [0, n-1] 范围内的问题,可以将值为 i 的元素调整到第 i 个...

2019-06-02 17:24:00 109

原创 C++中前置++与后置++

C++中++i与i++区别 ++i与i++内部实现 //前置++ Operator Operator::operator++() { ++value; //内部成员变量 return *this; } //后置++ Operator Operator::operator++(int) { Operator temp; temp.value=value; value++; return ...

2018-09-19 09:38:14 305

原创 剑指offer-5.两个栈实现队列

题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路解析:队列的性质是先进先出,栈的性质是先进后出,用两个栈模拟一个队列进出顺序,直接先将元素放入到栈1中,先进入的元素被存放在栈底了,所以对栈1中元素全部出栈入栈2,即可使栈1栈底元素位位于栈2的栈顶。 入队列:直接入栈1 出队列:为了保证先进先出,若栈2中有数据,直接出栈,否则,将栈1中...

2018-08-03 10:56:30 117

原创 剑指offer-6.重建二叉树

题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路: 前序查找第一个节点,根据前序遍历(根左右)的特性,第一个节点即为二叉树的根节点 根据1中找到的跟节点到中序序列中找到此根节点位置,...

2018-07-31 15:22:51 128

原创 剑指offer-0.链表环入口节点

剑指offer——链表中环入口节点 题目:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 解题思路:通过设置两个指针,快慢指针,其中快指针每次走两步,满指针每次走一步 草图如下: 其中从开始到环的入口长度为x,假设在环(环长度为n)上的B点相遇,设环入口到B点为a,则B到A(顺时针)为n-a 有次可推出: 快指针走过的长度: ...

2018-07-28 12:21:19 180

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除