
剑指offer
cheney康
中山大学计算机学院研究生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【剑指offer python】面试题46:求1+2+…+n
链接:面试题46:求1+2+…+n题目描述求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。分析:直接调用python里的sum函数class Solution: def Sum_Solution(self, n): return sum(range(0,n+1))...原创 2018-05-17 16:07:49 · 358 阅读 · 0 评论 -
【剑指offer python】数字在排序数组中出现的次数
题目链接数字在排序数组中出现的次数题目描述统计一个数字在排序数组中出现的次数。 solutionclass Solution: def GetNumberOfK(self, data, k): return data.count(k) ...原创 2018-10-30 08:29:29 · 263 阅读 · 0 评论 -
【剑指offer python】二叉树的深度
题目链接二叉树的深度题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。solutionclass Solution: def TreeDepth(self, pRoot): if not pRoot: return 0 else: ...原创 2018-10-30 08:45:31 · 208 阅读 · 0 评论 -
【剑指offer python】判断平衡二叉树
题目链接判断平衡二叉树题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。solutionclass Solution: def TreeDepth(self,pRoot): if pRoot == None: return True return max(self.TreeDepth(pRoot.left) ...原创 2018-10-30 11:36:39 · 1164 阅读 · 1 评论 -
【剑指offer python】面试题7:用两个栈实现队列
题目链接用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 solutionclass Solution: def __init__(self): self.stack1 = [] self.stack2 = [] def push(self, node):...原创 2018-10-27 12:09:26 · 186 阅读 · 0 评论 -
【剑指offer python】面试题8:旋转数组的最小数字
题目链接旋转数组的最小数字题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 solutionclass Solution: ...原创 2018-10-27 18:05:04 · 195 阅读 · 0 评论 -
【剑指offer python】面试题9:斐波那契数列
题目链接斐波那契数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39solution class Solution: def Fibonacci(self, n): if n <= 1: return n f0 = 0...原创 2018-10-27 18:23:41 · 253 阅读 · 0 评论 -
【剑指offer python】数组中只出现一次的数字
题目链接数组中只出现一次的数字题目描述一个整型数组里除了两个数字之外,其他的数字都出现了偶数次。请写程序找出这两个只出现一次的数字。solutionclass Solution: # 返回[a,b] 其中ab是出现一次的两个数字 def FindNumsAppearOnce(self, array): l = [] for i ...原创 2018-10-30 16:21:47 · 243 阅读 · 0 评论 -
【剑指offer python】和为S的两个数字
题目链接和为S的两个数字题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。 思路:若array[left] + array[right] == tsum,就是答案(相差越远乘积越小)若array[left] + array[r...原创 2018-10-30 17:36:51 · 236 阅读 · 0 评论 -
【剑指offer python】左旋转字符串
题目链接左旋转字符串题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它! solutionclass Solution: ...原创 2018-10-30 19:16:03 · 273 阅读 · 0 评论 -
【剑指offer python】翻转单词顺序列
题目链接翻转单词顺序列题目描述牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助...原创 2018-10-30 19:25:43 · 342 阅读 · 0 评论 -
【剑指offer python】面试题4:替换空格
链接替换空格题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 solution:class Solution: # s 源字符串 def replaceSpace(self, s): if type(s) != str: ...原创 2018-10-24 17:27:02 · 213 阅读 · 0 评论 -
【剑指offer python】面试题3:二维数组中的查找
链接:二维数组中的查找题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 solution:class Solution: # array 二维列表 def Find(self, target, array)...原创 2018-10-24 16:38:03 · 320 阅读 · 0 评论 -
【剑指offer python】面试题39:二叉树的深度
题目描述输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.r...原创 2018-05-13 15:48:17 · 429 阅读 · 0 评论 -
【剑指offer python】面试题47:不用加减乘除做加法
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。class Solution: def Add(self, num1, num2): # write code here while num2 != 0: temp = num1 ^ num2 num2 = (num1 &am...原创 2018-05-13 17:33:00 · 688 阅读 · 0 评论 -
【剑指offer python】面试题19:二叉树的镜像
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5class So...原创 2018-05-13 17:52:23 · 244 阅读 · 0 评论 -
【剑指offer python】青蛙跳台阶
链接:青蛙跳台阶题目描述一、一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:假定第一次跳的是一阶,那么剩下的是n-1个台阶,跳法是f(n-1);假定第一次跳的是2阶,那么剩下的是n-2个台阶,跳法是f(n-2);假定第一次跳的是3阶,那么剩下的是n-3个台阶,跳法是f(n-3)......假定第一次跳的是n-1阶,...原创 2018-05-13 20:29:34 · 1650 阅读 · 0 评论 -
【剑指offer python】面试题52:构建乘积数组
链接:构建乘积数组题目描述给定一个数组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]。不能使用除法。解法一:去除A中序号为i的元素,其他元素乘积就是B[i]class Solution: def multiply(self, A): B = [1]...原创 2018-05-14 11:22:58 · 700 阅读 · 0 评论 -
【剑指offer python】面试题11:数值的整数次方
题目链接数值的整数次方题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。solutionclass Solution: def Power(self, base, exponent): if exponent == 0: return 1 ans...原创 2018-10-28 11:47:21 · 238 阅读 · 0 评论 -
【剑指offer python】面试题14:调整数组顺序使奇数位于偶数前面
题目链接调整数组顺序使奇数位于偶数前面题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。solutionclass Solution: def reOrderArray(self, array): lj = [] ...原创 2018-10-28 17:28:18 · 275 阅读 · 0 评论 -
【剑指offer python】面试题15:链表中倒数第k个结点
题目链接链表中倒数第k个结点题目描述输入一个链表,输出该链表中倒数第k个结点。solution 1遍历一次链表获得链表长度,再次遍历链表,至n-k+1出输出class Solution: def FindKthToTail(self, head, k): if head == None or k < 0: return...原创 2018-10-29 10:54:34 · 220 阅读 · 0 评论 -
【剑指offer python】面试题5:从头到尾打印链表
链接从头到尾打印链表题目描述输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。 solutionclass Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): current = listNode n...原创 2018-10-26 09:38:31 · 325 阅读 · 0 评论 -
【剑指offer python】面试题19:二叉树的镜像
题目链接二叉树的镜像题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...原创 2018-10-29 19:48:55 · 254 阅读 · 0 评论 -
【剑指offer python】链表中环的入口结点
题目链接链表中环的入口结点题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。solutionclass Solution: def EntryNodeOfLoop(self, pHead): list = [] p = pHead while p: if p in ...原创 2018-11-02 21:57:24 · 211 阅读 · 0 评论