剑指offer第10题】的更多相关文章

面试10题: 题目:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.n<=39 n=0时,f(n)=0 n=1时,f(n)=1 n>1时,f(n)=f(n-1)+f(n-2) 解题代码一:基于循环(推荐) 代码如下: # -*- coding:utf-8 -*- class Solution: def Fibonacci(self, n): # write code here small=0 big=1 if n<=0: return 0 if n==1:…
import java.util.Scanner; /* 前两种方法是看最低为是不是为1,不为1则向右移动. 第一种只能对正整数有效,对负数不行,因为负数用的是补码,最高外符号位为1,最后右移动,肯定会变成0xFFFFFFFFFF....F*/ public class FindNmuberOf1 { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNextInt(…
今天是<剑指offer>算法题系列的最后一天了,但是这个系列并没有包括书上的所有题目,因为正如第一天所说,这些代码是在牛客网上写并且测试的,但是牛客网上并没有涵盖书上所有的题目. 今日题目: 正则表达式匹配 表示数值的字符 把字符串转换成整数 删除连表中重复的节点 按之字形顺序打印二叉树 将二叉树打印成多行 其中第5,6题是比较典型的二叉树层次遍历的题目,比较简单,这边就不在阐述,但是大家对它们还是得非常熟悉. 1. 正则表达式匹配 题目描述: 请实现一个函数用来匹配包括'.'和'*'的正则表…
转载自:浅谈<剑指offer>原题:求1+2+--+n 如侵犯您的版权,请联系:windeal12@qq.com <剑指offer>上的一道原题,求1+2+--+n,要求不能使用乘除法,for.while.if.else.switch.case等关键字以及条件判断语句(a?b:c). 第一次看到这道题大约有一年的时间了,在霸笔网易的时候,当时我就晕了...心想这是神马东西,后来发现这是原题!!然后后悔自己没看过书了... <剑指offer>上给出了不错的解法,但是这里有…
原创博文,转载请注明出处! 0.简介 # 本文是牛客网<剑指offer>刷题笔记,笔记索引链接 1.题目 # 用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 2.思路 # 2*1的矩阵覆盖2*8的矩阵的方法f(8):用第一个1*2矩阵覆盖2*8矩阵的最左边时有竖着或横着两种方法. 当1*2矩阵竖着放时,2*8矩阵右边剩余2*7的区域,覆盖2*7区域的方法记为f(7); 当1*2矩阵横着放时,2*8左上角放一个1*2的矩阵…
<剑指offer>刷题目录 面试题03. 数组中重复的数字 面试题04. 二维数组中的查找 面试题05. 替换空格 面试题06. 从尾到头打印链表 面试题07. 重建二叉树 面试题09. 用两个栈实现队列 面试题10- I. 斐波那契数列 面试题10- II. 青蛙跳台阶问题 面试题11. 旋转数组的最小数字 面试题12. 矩阵中的路径 面试题13. 机器人的运动范围 面试题14- I. 剪绳子 面试题14- II. 剪绳子 II 面试题15. 二进制中1的个数 面试题16. 数值的整数次方…
面试14题: 题目:剪绳子 题:给你一根长度为n的绳子,请把绳子剪成m段(m,n都是整数,且n>1,m>1),每段绳子的长度记为k[0],k[1],k[2],...,k[m].请问k[0]*k[1]*...*k[m]可能的最大乘积是多少?例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三段,此时得到的最大乘积为18. 解题思路:基于动态规划和贪婪算法,详见剑指offer P96 解题代码: # -*- coding:utf-8 -*- class Solution: def Max…
面试17题: 题目:打印从1到最大的n位数 题:输入数字n,按顺序打印出从1到最大的n位十进制数,比如输入3,则打印出1.2.3一直到最大的3位数999. 解题思路:需要考虑大数问题,这是题目设置的陷阱.可以把问题转换成数字排列问题,用递归让代码更简洁. 参见剑指offer P114 解题代码: # -*- coding:utf-8 -*- class Solution: def Print1ToMaxOfNDigits(self, n): if n<=0: return number=[']*…
面试29题: 题目:顺时针打印矩阵(同LeetCode 螺旋矩阵打印) 题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 解题方法一:详见剑指offer 解题代码: # -*- coding:utf-8 -*- class Solution: # matrix类型为二维列表,需要返回…
在<剑指Offer>中,在栈和队列习题中,作者留下来一道题目供读者自己实现,即"用两个队列实现一个栈". 在计算机数据结构中,栈的特点是后进先出,即最后被压入(push)栈的元素会第一个被弹出(pop);队列的特点是先进先出,即第一个进入队列的元素将会被第一个弹出来.虽然栈和队列特点是针锋相对,但是两者却相互联系,可以互相转换. 在"用两个队列实现一个栈"问题中,我们用两个队列的压入和弹出来模拟栈的压入和弹出.我们通过画图的手段把抽象的问题形象化. 在上…