随笔分类 - 剑指offer
摘要:题目描述 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任
阅读全文
摘要:题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 思路: 1 若exponent为正数,就将bace相乘exponent次; 2 若exponent为负数,就将bace除以exponen
阅读全文
摘要:题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路: 代码: class Solution { public: int jumpFloorII(int number) { if(number==1) return 1; in
阅读全文
摘要:题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 思路: 代码: class Solution { public: int rectCover(int number
阅读全文
摘要:题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 思路:思路就是斐波那契数列 n个台阶f(n)包括两种情形,一种是刚刚跳了1级,一种是刚刚跳了2级,只有这两种情况。若是刚刚跳了1级的话,那么有f(n-1)中跳法,若是刚刚
阅读全文
摘要:题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。 n<=39 思路:该题有两种方法。 一种是递归的 一种是非递归的, 代码: class Solution { public: int Fibonacci(int n) { i
阅读全文
摘要:题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 代码: clas
阅读全文
摘要:题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 思路: 1当队列进行push入队列操作时,就将元素放入stack1 2当队列进行pop出队列操作时,先查看stack2是否为空,若不为空,则从stack2删除一个元素;若为空,就将此时stack1中的所有
阅读全文
摘要:题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路:使用递归的思想。 1 前序遍历的第一个数字pr
阅读全文
摘要:题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 思路:因为涉及到反向,所以我们使用栈。 将链表从头结点开始依次将val数值装入栈中,根据栈的后进先出原则,所以出栈的顺序就是链表从尾到头的顺序。 代码: /** * struct ListNode { * int val; *
阅读全文
摘要:题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路:该问题我想到了两种思路。 第一种比较简单。 建立一个新的数组,对原字符串从头开始依次检测,若不为空就直接复制到新数组里,若为
阅读全文
摘要:题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 思路: 1 将指针先定位到最后一列的第一个数array[0][col-1],从它开始进行比较,若
阅读全文
摘要:题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法的数值表达则返回该数字,否则返回0 示例1 输入 复制 +2147483647 1a33 输出 复制
阅读全文
摘要:题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路: 1. 找到每个
阅读全文
摘要:题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。(注意:规定B[0] = A[1] * A[2] * ... * A[n-1],B[n-
阅读全文
摘要:题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均
阅读全文
摘要:题目描述 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 注意:E或e后面不能为空,并且不能有小数
阅读全文
摘要:题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当前字符流没有存在出现一次的字符,返回#字符。 class
阅读全文
摘要:题目描述 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null 思路:(一开始不会,看了其他网友的才自己弄明白的) 1. 该图来源于https://blog.csdn.net/HelloZEX/article/details/81087398。 先设两个指针,一个快指针(每次走两
阅读全文
摘要:题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 思路:递归。递归求取左右子树的高度,然后进行判断高度差是否大于1。 代码: public class Solution { public boolean IsBalanced_Solution(TreeNode root) { if(root
阅读全文

浙公网安备 33010602011771号