斐波那契数

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

2017-09-12 16:07:16

阅读数:232

评论数:0

旋转数组的最小数字

时间限制:3秒 空间限制:32768K 热度指数:199704 本题知识点: 查找题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最...

2017-09-12 15:10:30

阅读数:170

评论数:0

用两个栈实现队列

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:145526 本题知识点: 队列 栈题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。解题思路队列经过一个栈,将反序输出,输出的队列再经过一个栈,又一次反序,变回了原来的顺序注...

2017-09-12 12:52:04

阅读数:172

评论数:0

重建二叉树

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:220072题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5...

2017-09-12 12:32:49

阅读数:144

评论数:0

从头到尾打印链表

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:327472 本题知识点: 链表解题思路我们的第一反映是将链表指针反向,然后再从头到尾输出结点的值,再把指针返回来但是,这样就改变了原来链表的结构!是否允许这样需要问清楚面试官。通常打印是一个只读操作。另一种思路:我们...

2017-09-12 11:18:13

阅读数:183

评论数:0

替换空格

牛客网 《剑指offer》 时间限制:1秒 空间限制:32768K 热度指数:378402 本题知识点: 字符串 题目描述请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题...

2017-09-12 10:28:31

阅读数:155

评论数:0

二维数组的查找

牛客网《剑指offer》 https://www.nowcoder.com/ta/coding-interviews 时间限制:1秒 空间限制:32768K 热度指数:423031 本题知识点:查找 题目描述在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下...

2017-09-11 22:49:34

阅读数:162

评论数:0

站队问题、分糖果问题

站队问题 分糖果站队问题n个人站队,他们的编号依次从1到n,要求编号为a的人必须在编号为b的人的左边,但不要求一定相邻,请问共有多少种排法?第二问如果要求a必须在b的左边,并且一定要相邻,请问一共有多少种排法?给定人数n及两个人的编号a和b,请返回一个两个元素的数组,其中两个元素依次为两个问题的答...

2017-09-03 10:39:26

阅读数:105

评论数:0

交换、比较

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

2017-09-02 23:51:00

阅读数:102

评论数:0

折纸、寻找错误结点

请把纸条竖着放在桌⼦上,然后从纸条的下边向上⽅对折,压出折痕后再展 开。此时有1条折痕,突起的⽅向指向纸条的背⾯,这条折痕叫做“下”折痕 ;突起的⽅向指向纸条正⾯的折痕叫做“上”折痕。如果每次都从下边向上⽅ 对折,对折N次。请从上到下计算出所有折痕的⽅向。给定折的次数n,请返回从上到下的折痕的数组...

2017-09-02 22:08:42

阅读数:84

评论数:0

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

平衡二叉树判断 完全二叉树判断平衡二叉树判断有一棵二叉树,请设计一个算法判断这棵二叉树是否为平衡二叉树。给定二叉树的根结点root,请返回一个bool值,代表这棵树是否为平衡二叉树。我的提交# -*- coding:utf-8 -*-# class TreeNode: # def __in...

2017-09-02 14:36:44

阅读数:93

评论数:0

二叉树的序列化

首先我们介绍二叉树先序序列化的方式,假设序列化的结果字符串为str,初始时str等于空字符串。先序遍历二叉树,如果遇到空节点,就在str的末尾加上“#!”,“#”表示这个节点为空,节点值不存在,当然你也可以用其他的特殊字符,“!”表示一个值的结束。如果遇到不为空的节点,假设节点值为3,就在str的...

2017-08-29 17:13:43

阅读数:130

评论数:0

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

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

2017-08-29 16:32:23

阅读数:207

评论数:0

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

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

2017-08-29 11:59:07

阅读数:179

评论数:0

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

局部最小值位置 元素最左出现 循环有序数组最小值局部最小值位置定义局部最小的概念。arr长度为1时,arr[0]是局部最小。arr的长度为N(N>1)时,如果arr[0]public class Solution { public int getLessIndex(int[] arr...

2017-08-28 22:52:36

阅读数:451

评论数:0

有环单链表相交判断、单链表相交判断

有环单链表相交判断 单链表相交判断有环单链表相交判断如何判断两个有环单链表是否相交?相交的话返回第一个相交的节点,不相交的话返回空。如果两个链表长度分别为N和M,请做到时间复杂度O(N+M),额外空间复杂度O(1)。给定两个链表的头结点head1和head2(注意,另外两个参数adjust0和ad...

2017-08-28 16:54:26

阅读数:100

评论数:0

复杂链表的复制、链表判环、无环单链表判相交

复杂链表的复制 链表判环 无环单链表判相交 复杂链表的复制输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)我的提交# -*- coding:utf-8 -*- # class RandomListNode: # def __init_...

2017-08-28 14:45:24

阅读数:98

评论数:0

链表指定值清除、链表的回文结构

链表指定值清除现在有一个单链表。链表中每个节点保存一个整数,再给定一个值val,把所有等于val的节点删掉。给定一个单链表的头结点head,同时给定一个值val,请返回清除后的链表的头结点,保证链表中有不等于该值的其它值。请保证其他元素的相对顺序。# 测试样例: {1,2,3,4,3,2,1},2...

2017-08-28 10:28:47

阅读数:100

评论数:0

访问单个节点的删除、链表的分化、打印两个链表的公共值

访问单个节点的删除实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定带删除的头节点和要删除的数字,请执行删除操作,返回删除后的头结点。链表中没有重复数字我的提交 (是我理解错题意了???)# -*- coding:utf-8 -*- # class ListNode: # ...

2017-08-25 16:12:29

阅读数:113

评论数:0

栈的反转、滑动窗口、数组变树

滑动窗口 有一个整型数组 arr 和一个大小为 w 的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置。 返回一个长度为n-w+1的数组res,res[i]表示每一种窗口状态下的最大值。 以数组为[4,3,5,4,3,3,6,7],w=3为例。因为第一个窗口[4,3,5]的最大值为5,第二...

2017-08-25 13:18:26

阅读数:92

评论数:0

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