自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 刷题--机器人的运动范围

地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+...

2018-07-12 10:51:00

阅读数 92

评论数 0

原创 刷题--矩阵中的路径

请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 ...

2018-07-11 20:28:41

阅读数 69

评论数 0

原创 刷题--滑动窗口的最大值

给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6...

2018-07-10 11:23:45

阅读数 74

评论数 0

原创 刷题--数据流中的中位数

如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 其实我们不需要整个数据容器是有序的,可以把它分成两个部分,位于容器左边部分的数据比右边的数据小。设置两个指针...

2018-07-09 14:54:47

阅读数 174

评论数 0

原创 刷题--二叉搜索树的第k个结点

给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 基本思路:一个中序遍历的问题。 # -*- coding:utf-8 -*- # class TreeNode: # def __ini...

2018-07-08 10:58:57

阅读数 86

评论数 0

原创 刷题--序列化二叉树

请实现两个函数,分别用来序列化和反序列化二叉树 可以用前序遍历来序列化二叉树 # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # sel...

2018-07-06 09:58:56

阅读数 59

评论数 0

原创 刷题--把二叉树打印成多行

从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 在层序遍历的基础上考虑如何区分每一行,可以设置两个变量,一个记录当前层还没有打印的结点个数,一个记录下一层需要打印的结点个数。 # -*- coding:utf-8 -*- # class TreeNode: # d...

2018-07-05 09:39:29

阅读数 57

评论数 0

原创 刷题--按之字形顺序打印二叉树

请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。 可以与层序遍历二叉树类比。 这里需要使用两个栈,一个存放奇数行,一个存放偶数行。 # -*- coding:utf-8 -*- # class T...

2018-07-04 09:20:23

阅读数 50

评论数 0

原创 刷题--对称的二叉树

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val =...

2018-07-03 09:38:39

阅读数 51

评论数 0

原创 刷题--二叉树的下一个结点

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 基本思路: 1.二叉树为空,返回空。 2.该结点存在右子树,返回右子树最左边的结点。 3.该结点不是根结点,如果该结点是其父结点的左孩子,返回其父结点;否...

2018-07-02 09:56:06

阅读数 55

评论数 0

原创 刷题--删除链表中重复的结点

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1-&a...

2018-07-01 17:01:01

阅读数 45

评论数 0

原创 刷题-- 链表中环的入口结点

一个链表中包含环,请找出该链表的环的入口结点。 思路一:使用一前一后两个指针,两个指针相差n步,n代表环中结点的数目,这两个指针相遇的结点刚好是环的入口。如何得到环中结点的数目?使用一快一慢两个指针,如果这两个指针相遇,表明链表中存在环,并且相遇的结点一定在环内,可以从这个结点出发,一边走一边计...

2018-06-30 17:22:48

阅读数 28

评论数 0

原创 刷题--字符流中第一个不重复的字符

请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符”go”时,第一个只出现一次的字符是”g”。当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是”l”。 思路:使用哈希表。 1.可以用哈希表存储每个字符出现的次数,找到第一个次数为1的...

2018-06-30 17:02:02

阅读数 46

评论数 0

原创 刷题--表示数值的字符串

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”, “5e2”, “-123”, “3.1416”和”-1E-16”都表示数值。 但是”12e”, “1a3.14”, “1.2.3”, “+-5”和”12e+4.3”都不是。 基本思路:考虑这些数值的特征。 ...

2018-06-14 09:45:40

阅读数 38

评论数 0

原创 刷题--正则表达式匹配

请实现一个函数用来匹配包括’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,但是与”aa.a”和”ab*a”均不匹配 ...

2018-06-14 09:24:05

阅读数 169

评论数 0

原创 刷题--构建乘积数组

给定一个数组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]。不能使用除法。 基本思想:分两段算。构建一个矩阵,主对角线上全是1,B[i]即为矩阵第i行所有元素的乘积。 # -*- c...

2018-06-13 10:01:35

阅读数 36

评论数 0

原创 刷题-- 数组中重复的数字

在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。 思路一:利用哈希表。 ...

2018-06-12 09:25:31

阅读数 54

评论数 0

原创 刷题--不用加减乘除做加法

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 基本思想:既然不能用四则运算,那么只剩下位运算了。第一步不考虑进位,对每一位相加,等同于异或。接着考虑第二步进位,等同于位与运算。第三步相加的过程依旧是重复前面两步,直到不产生进位为止。 # -*- codin...

2018-06-11 09:45:38

阅读数 57

评论数 0

原创 刷题--求1+2+3+...+n

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 基本思路:既然题目要求不能用循环,那就只能用递归了,关键在于如何描述递归结束条件,这里用到了逻辑与的短路特性。 # -*- coding:utf-8 ...

2018-06-10 22:01:04

阅读数 84

评论数 0

原创 刷题--孩子们的游戏(圆圈中最后剩下的数)

每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选...

2018-06-07 19:56:21

阅读数 309

评论数 0

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