自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试题17:打印从1到最大的n位数

题目:打印从1到最大的n位数题:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1、2、3一直到最大的3位数999.解题思路:打印整数,循环、递归思路。陷阱:n为位数,并非为最大的数;n必须为自然数,但是当取很大的值时,会超出int取值范围(大数问题),不能按照题意输出结果为避免上述问题(表达一个大数),我们使用字符串表达数字,循环输出字符串,需要解决的问...

2018-08-09 21:57:51 779 1

原创 面试题16——数值的整数次方

题目:求数base的exponent次方(base是基数,exponent是指数),不得使用库函数。其中。base是float,exponent是int型。实现的一般思路是循环,为保证代码的完整性,首先要把可能的输入想清楚,base可以取一般的正负数、整数、0,而exponent应该为整数(负整数、正整数、0),不能取非整数。而且需要对乘积得到的数进行边界测试,不能超过边界值。题目有要求,不需...

2018-08-08 22:09:07 226

原创 面试题14——剪绳子

题目:给你一段长度为n的绳子,请将绳子剪成m段(m、n都是大于1的正整数),每段绳子的长度记为k[0]/k[1]/······k[m],求各段绳子最大乘积为多少?当绳子的长度为8,剪成2/3/3三段,最大乘积为18。根据数学原理,k[1]+k[2]+······=m,为定值,要想让乘积最大,需要每段绳子长度尽可能靠近。在剪第一刀时,可以有n-1种选择,假设剪到了长度为i的位置,我们想要整个问题的最...

2018-08-07 10:04:03 467

原创 面试题13——机器人的运动范围

题目:机器人的运动范围题:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?解题思路:为使机器人达...

2018-08-06 21:42:28 247

原创 面试题12——回溯法求矩阵中的路径

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

2018-08-06 10:00:39 526

原创 面试题11——旋转数组的最小数字

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0旋转的得到的数组实际上是可以划分为两个排序的子数组,而且前面子数组的元素都大于或者等于后面子数组的元素。我们还注意...

2018-08-05 21:26:53 126

原创 面试题10:算法题——斐波那契数列

题目1:求斐波那契数列的第n项。斐波那契数列的定义:f(0)=0 f(1)=1   f(n)=f(n-1)+f(n-2)教科书上反复用这个问题来讲解递归函数,并不能说明递归函数解法最适合这道题目,这种方法有很严重的效率问题(存在重复计算),需要一种实用的解法。 由下往上计算,根据f(1)和f(2)计算出f(3),由f(3)和f(2)计算出f(4),循环下去,直至计算出f(n) 基于...

2018-08-05 17:24:28 5275

原创 面试题9相关题目:用两个队列实现一个栈

python中队列也是用list列表实现,要实现先入先出功能,有两种方式,先入元素在队头部(0),后入在尾部,弹出时,使用list.pop(0)弹出队头元素,只是之后的元素需要全部移动位置o(n),第二种方法:先入元素在队尾,后入在队头,压入元素时o(n),弹出o(1)。一般使用第一种方法。要想让两个队列实现一个栈的功能,经过绘图发现,需要将队列A中所有元素(除最后一个)弹出,依次压入队列B,...

2018-08-05 15:51:49 328

原创 面试题9 用两个栈实现队列

题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型栈是保证元素后进先出,队列保证元素先进先出,它们都只有到来先后顺序python中用list来提供栈和队列的功能,对于栈而言,要实现后进先出,出的方式只有list.pop(),pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值,所以压入元素存入list的尾部,list.a...

2018-08-03 21:44:46 230

原创 二叉树的下一个节点

题目:二叉树的下一个节点题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。# -*- coding:utf-8 -*-# class TreeLinkNode:# def __init__(self, x):# self.val = x# self...

2018-08-03 18:36:16 189

原创 面试题七:重建二叉树

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。代码:前序遍历的第一个数字为根节点的值,中序遍历同样的数字表示根节点的位置,之前的数字为左子树节点的值,之后的数字为右子树的值,同样的数字为前序遍历左右子树的结果,递归该过程。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# ...

2018-07-31 19:16:22 158

原创 剑指offer 面试题六——从头到尾打印链表

题目:输入一个链表的头节点,从尾到头反过来打印每个节点的值。两种实现思路:一种为list,list可以实现反向输出[::-1],将链表读入的内容从头到尾存放在list中,之后反向输出。问题在于,python如何访问链表。在python中这样定义链表,在电脑默认里面,有一个ListNode类,给出的是其中一个实例,可以通过.变量和.方法的方式访问类变量和类方法。python定义listnode类似指...

2018-07-06 18:56:49 140

原创 面试题五:替换空格

题目:请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为“We Are Happy.”则经过替换之后的字符串为"We%20Are%20Happy."。思路:看到这个题目,我们首先应该想到的是原来一个空格字符变为%20”后字符串会变长,有两种不同要求的方法:第一种,可以利用新的字符串,会有空间复杂度;第二种,仍在原来的字符串上替换,并且保证输入的字符串后面有足够多的空余内存。第一...

2018-07-02 21:27:05 107

原创 剑指offer(python)版 面试题四——二维数组的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题代码一:二层遍历,时间并不是最优实际上python当中没有数组的概念, 而是列表(List), 二维列表相当于二维数组,一般写为:map = [['*' for i in range(20)] for i in range(...

2018-07-02 09:42:09 165

原创 剑指offer秋招准备(python版)---面试题3 ---附加 二分查找

题目:在一个长度为n+1的数组中,元素的大小在1~n之间(都是整数),说明一定存在重复数字,试问能不能在不修改数组的情况下找到一个重复的数字。实例【2,3,5,4,3,2,6,7】共8个数,在1到7的范围内,取中间的数字4,1~4之间包括1/2/3/4,在数组中,在这个范围内的数为5个,超过了该范围应该有的个数,故重复数字出现在1~4区间,之后继续这个过程,直至范围内数字个数等于2.二分查找理念:...

2018-06-29 10:45:52 548

空空如也

空空如也

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

TA关注的人

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