关闭

斐波那契数

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:199742解题思路一: 如果像这样,将会有大量的计算是重复的,时空复杂度过大 二: 可以考虑将计算过的结果缓存起来,如果发现一个 n 已经计算过了,就不再重复计算三: 非递归解法,即从下往上算 首先根据 f(0)和 f(1) 算出 f(2),再根据f(1) 和 f(2)算出f(3)。。。以此类推python 2...
阅读(154) 评论(0)

旋转数组的最小数字

时间限制:3秒 空间限制:32768K 热度指数:199704 本题知识点: 查找题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。程序 https://git...
阅读(119) 评论(0)

用两个栈实现队列

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:145526 本题知识点: 队列 栈题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路队列经过一个栈,将反序输出,输出的队列再经过一个栈,又一次反序,变回了原来的顺序注意:当要把第一个栈的元素弹出转移到第二个栈时,必须把第一个栈此时所有的元素都弹出,否则会乱序程序# -*...
阅读(121) 评论(0)

重建二叉树

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:220072题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路前序遍历的第一个结点为根节点中序遍历的根结点的左边为左子树,...
阅读(103) 评论(0)

从头到尾打印链表

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:327472 本题知识点: 链表解题思路我们的第一反映是将链表指针反向,然后再从头到尾输出结点的值,再把指针返回来但是,这样就改变了原来链表的结构!是否允许这样需要问清楚面试官。通常打印是一个只读操作。另一种思路:我们的输出是先进后出,所以可以用栈来实现,而递归是一种栈,所以也可以用递归来做。python# -*- co...
阅读(116) 评论(0)

替换空格

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:378402 本题知识点: 字符串 题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路 参考别人的Python实现 https://github.com/Jack-Lee-Hi...
阅读(98) 评论(0)

二维数组的查找

牛客网《剑指offer》 https://www.nowcoder.com/ta/coding-interviews 时间限制:1秒 空间限制:32768K 热度指数:423031 本题知识点:查找 题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路来自...
阅读(106) 评论(0)

站队问题、分糖果问题

站队问题 分糖果站队问题n个人站队,他们的编号依次从1到n,要求编号为a的人必须在编号为b的人的左边,但不要求一定相邻,请问共有多少种排法?第二问如果要求a必须在b的左边,并且一定要相邻,请问一共有多少种排法?给定人数n及两个人的编号a和b,请返回一个两个元素的数组,其中两个元素依次为两个问题的答案。保证人数小于等于10。测试样例: 7,1,2 返回:[2520,720]我的提交# -*- co...
阅读(48) 评论(0)

交换、比较

交换 比较交换请编写一个算法,不用任何额外变量交换两个整数的值。给定一个数组num,其中包含两个值,请不用任何额外变量交换这两个值,并将交换后的数组返回。测试样例: [1,2] 返回:[2,1]# -*- coding:utf-8 -*-class Swap: def getSwap(self, num): # write code here num[0]...
阅读(56) 评论(0)

折纸、寻找错误结点

请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。给定折的次数n,请返回从上到下的折痕的数组,若为下折痕则对应元素为”down”,若为上折痕则为”up”.#测试样例: 1 #返回:["down"]...
阅读(45) 评论(0)

平衡二叉树判断、完全二叉树判断

平衡二叉树判断 完全二叉树判断平衡二叉树判断有一棵二叉树,请设计一个算法判断这棵二叉树是否为平衡二叉树。给定二叉树的根结点root,请返回一个bool值,代表这棵树是否为平衡二叉树。我的提交# -*- coding:utf-8 -*-# class TreeNode: # def __init__(self, x): # self.val = x # self...
阅读(42) 评论(0)

二叉树的序列化

首先我们介绍二叉树先序序列化的方式,假设序列化的结果字符串为str,初始时str等于空字符串。先序遍历二叉树,如果遇到空节点,就在str的末尾加上“#!”,“#”表示这个节点为空,节点值不存在,当然你也可以用其他的特殊字符,“!”表示一个值的结束。如果遇到不为空的节点,假设节点值为3,就在str的末尾加上“3!”。现在请你实现树的先序序列化。给定树的根结点root,请返回二叉树序列化后的字符串。我的...
阅读(59) 评论(0)

递归二叉树的序列打印、非递归二叉树的序列打印

递归二叉树的序列打印 非递归二叉树的序列打印递归二叉树的序列打印请用递归方式实现二叉树的先序、中序和后序的遍历打印。给定一个二叉树的根结点root,请依次返回二叉树的先序,中序和后续遍历(二维数组的形式)。我的提交# -*- coding:utf-8 -*-# class TreeNode: # def __init__(self, x): # self.val = x #...
阅读(83) 评论(0)

最左原位、完全二叉树计数、快速N次方

最左原位 完全二叉树计数最左原位有一个有序数组arr,其中不含有重复元素,请找到满足arr[i]==i条件的最左的位置。如果所有位置上的数都不满足条件,返回-1。给定有序数组arr及它的大小n,请返回所求值。测试样例: [-1,0,2,3],4 返回:2我的提交# -*- coding:utf-8 -*-class Find: def findPos(self, arr, n):...
阅读(77) 评论(0)

局部最小值位置、元素最左出现、循环有序数组最小值

局部最小值位置 元素最左出现 循环有序数组最小值局部最小值位置定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]public class Solution { public int getLessIndex(int[] arr) { if (arr == null || arr.length == 0) {...
阅读(196) 评论(0)
41条 共3页1 2 3 下一页 尾页
    个人资料
    • 访问:80721次
    • 积分:2193
    • 等级:
    • 排名:第19038名
    • 原创:135篇
    • 转载:52篇
    • 译文:0篇
    • 评论:26条
    博客专栏