自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (4)
  • 收藏
  • 关注

转载 剑指Offer面试题12:打印1到最大的n位数 Java实现

题目:打印1到最大的n位数          输入数字n,按顺序打印出从1到最大n位十进制数。比如输入n = 3,则打印出1,2,3……999.算法分析:如果我们在数字前面补0的话,就会发现n位所有十进制数其实就是n个从0到9的全排列。也就是说,我们把数字的每一位都从0到9排列一遍,就得到了所有的十进制数。只是打印的时候,数字排在前面的0我们不打印出来罢了。

2016-10-30 22:09:23 559

原创 剑指Offer面试题7:用两个栈实现队列 Java实现

题目:用两个栈实现队列            队列的声明如下,请实现它的两个函数appendTail和deletedHead,分别完成在队列尾部插入节点和在队列头部删除节点的功能。算法分析:        我们通过一个具体的例子来分析该队列插入和删除元素的过程。首先插入一个元素a,不妨先把它插入到stack1,此时stack1 中的元素有{a},stack2为空。再压入

2016-10-30 18:33:08 511

原创 剑指Offer面试题6:重建二叉树 Java实现

题目:重建二叉树          输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复数字。例如,输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出图中所示的二叉树并输出它的头节点。算法分析:在二叉树的前序遍历序列中,第一个数字总是树的根节点的值。

2016-10-30 18:25:34 423

原创 剑指Offer面试题11:数值的整数次方 Java实现

题目:数值的整数次方          实现函数 double Power(double base,int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。算法分析:我们都知道在C语言库函数中有一个pow函数可以用来求乘方,本题要求实现类似pow的功能。1、自以为很简单的解法:由于不需要考虑大数问题,

2016-10-30 18:04:34 393

原创 剑指Offer面试题5:从尾到头打印链表

题目:从尾到头打印链表输入一个链表的头节点,从尾到头反过来打印输出每个节点的值。算法分析:        看到这道题,很多人的第一反应是从头到尾输出将会比较简单,于是我们很自然的想到把链表中的节点的指针反转过来,改变链表的方向,然后就可以从头到尾输出了。但该方法改变原来链表的结构。是否允许在打印链表的时候修改链表的结构?这个取决于面试官的要求,因此在面试的时候我们要询问清楚

2016-10-27 21:44:04 901

原创 剑指Offer面试题3:二维数组的查找 Java实现

题目:二维数组的查找在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的顺序排列。请完成一个函数,输入这样的一个二维数组和一个整数,判断该数组是否含有该整数。例如在下面的二维数组中,如果查找数字7,则返回true;如果查找数字5,由于矩阵不含有该数,则返回false。1    2    8     92    4    9     12

2016-10-27 21:01:16 344

原创 剑指Offer面试题4:替换空格 Java实现

题目:请实现一个函数,把字符串中的每个空格替换成“20%”。例如,输入“we are so happy”则输出:“we20%are20%so20%happy”。算法分析:算法1:时间复杂度为O(n^2)的解法现在我们考虑怎么做替换操作。最直观的做法是从头到尾扫描字符串,每一次碰到空格字符的时候做替换。由于是把1个字符替换称3个字符,我们必须把空格后面的所有的字符

2016-10-27 20:30:04 869

原创 nextInt()与nextLine()方法连用时问题

在nextInt(),next(),nextDouble(),nextFloat()方法与nextLine()连用并放在nextLine()前面时,就会出现如下错误:            System.out.println("请输入矩阵的行数:");        int rows = scanner.nextInt();                Syst

2016-10-23 11:17:04 6040 3

原创 剑指Offer面试题66:矩阵中的路径 java实现

题目:矩阵中的路径          请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中任意一格开始,每一步可以在矩阵中向左右上下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3x4的矩阵中包含一条字符串“bcced"的路径。但该矩阵中不包含字符串"abcd",的路径,因为字符串的第一个字符b占据了矩阵中的第

2016-10-23 11:08:51 1417

原创 剑指Offer面试题67:机器人的运动范围 Java实现

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

2016-10-23 10:13:32 2545

原创 剑指Offer面试题65:滑动窗口的最大值 Java实现

题目:给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值。如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4.4,6,6,6,5}。算法分析:         如果采用蛮力法,这个问题似乎不难解决:可以扫描每一个滑动窗口的所有数字并找出其中的最大值。如果滑动窗口的大小为k,需要O(k)时间才能找

2016-10-18 23:10:07 5267

原创 剑指offer面试题63:二叉搜索树的第k个节点 Java实现

题目:二叉搜索树的第k个节点         给定一颗二叉搜索树,请找出其中的第k大的节点。例如,下图中的二叉搜索树中,按节点数值大小顺序第三个节点的值 是4. 算法分析:如果按照中序遍历的顺序遍历一棵二叉搜索树,遍历序列的数值是递增排序的。上图中的二叉搜索树的中序遍历序列为{2,3,4,5,6,7,8},因此,只需要用中序遍历算法遍历一棵二叉搜索树,就

2016-10-17 22:31:24 1218

原创 剑指Offer面试题62:序列化二叉树

题目:序列化二叉树        请实现两个函数,分别用来序列化和反序列化二叉树。算法分析:        通过分析解决前面的面试题6.我们知道可以从前序遍历和中序遍历构造出一棵二叉树。受此启发,我们可以先把一棵二叉树序列化成一个前序遍历序列和一个中序序列,然后再反序列化时通过这两个序列重构出原二叉树。  这个思路有两个缺点。一个缺点是该方法要求二叉树中不能用有数值

2016-10-17 22:23:28 429

转载 剑指Offer面试题61:按之子型打印二叉树 Java实现

题目:按之字型打印二叉树          请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,即第一行按照从左到右的顺序打印,第二层按照从右到左顺序打印,第三行再按照从左到右的顺序打印,其他以此类推。例如,按之字型打印下图的二叉树结果为:13  24  5  6  715  14  13  12  11

2016-10-16 22:57:37 1738

转载 剑指Offer面试题60:把二叉树打印成多行 Java实现

题目:把二叉树打印成多行          从上到下按层打印二叉树,同一行的节点从左到右的顺序打印,每一层打印到新的一行。例如,打印下图的二叉树结果为:8,6 105  7  9  11算法分析:为了把二叉树的每一行单独打印到一行里,我们需要两个变量:一个变量表示在当前层还没有打印的节点数,另一个变量表示下一层的节点数目。

2016-10-16 22:46:36 770

原创 剑指Offer面试题59:对称二叉树 Java实现

题目:对称二叉树          请实现一个函数,用来判断一颗二叉树是不是对称的。如果一颗二叉树和它的镜像一样,那么它是对称的。算法分析: 如上图所示,图(1)位一颗对称二叉树,图(2)和图(3)都不是对称二叉树算法描述:见程序算法源程序:/**********************************

2016-10-14 21:46:19 307

原创 剑指Offer面试题58:二叉树的下一个节点

题目:二叉树的下一个节点          给定一颗二叉树和其中的一个节点,如何找出中序遍历的下一个节点?树中的节点除了有两个分别指向左右子节点的指针以外,还有一个指向父节点的指针。算法分析:整个算法中需要考虑的二叉树情况分为两类:1.有右子树的:那么下个结点就是右子树最左边的点;2.没有右子树的:    a)是父节点左孩子,那么父节点就是下一个节点 ;

2016-10-14 21:36:41 492

原创 剑指Offer面试题57:删除重复链表 Java实现

题目:删除重复链表        在一个排序的链表中,删除其中的重复节点,例如,链表A:        A:1->2->2->4->4->6        删除重复节点后的链表B为:        B:1->4->6.算法分析:        解决这个问题的第一步是确定删除的参数。当然这个函数需要输入待删除链表的头结点。头结点可能与后面的结点

2016-10-13 23:41:48 360

原创 剑指Offer面试题56:链表中环的入口节点 Java实现

题目:链表中环的入口节点        一个链表中包含环,如何找出环的入口节点?例如,下图中的入口节点是3.             1->2->3->4->5->6                         ^               |                          |               | 

2016-10-13 23:33:11 796

转载 剑指Offer面试题55:字符流中第一个不重复的字符 Java实现

题目:字符流中第一个不重复的字符        请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中读出前两个字符“go”时,第一个只出现一次的字符是“g”.当从该字符流中读出前六个字符“google”时,第一个只出现一次的字符是"l".算法分析:        字符只能一个接着一个从字符流中读出来。可以定义一个数据容器来保存字符在字符流

2016-10-12 22:36:43 472

原创 剑指Offer面试题54:表示数值的字符串

题目:表示数值的字符串        请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串“+100”,“5e2”,"-123","3.1416",  "-1e-16"都表示数值,但“12e",  "1a3.14"  ,"1.2.3", "+-5"都不是。算法分析: 在数值之前可能有一个表示正负的’-‘或者’+’。接下来是若干个0到9的数位表示数值的

2016-10-12 22:27:12 271

转载 剑指Offer面试题53:正则表达式匹配 Java实现

题目:正则表达式匹配    请实现一个函数用来匹配包含‘.’和‘*’的正则表达式。模式中的字符’.’表示任意一个字符,而‘*’表示它前面的字符可以出现任意次(含0次)。本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串“aaa”与模式“a.a”和“ab*ac*a”匹配,但与“aa.a”及“ab*a”均不匹配。算法分析:以下算法代码转自博客:http://blog

2016-10-11 22:48:34 2409

原创 剑指Offer面试题52:构建乘积数组 Java实现

题目:构建乘积数组            给定一个数组A[0,1,2,……n-1],请构建一个数组B[0,1,……n-1],其中B中的元素B[i]=A[0]*A[1]*……A[i-1]*A[i+1]*……A[n-1].不能使用除法.算法分析:如果没有不能使用除法限制,可以用公式πA[j]/A[i]求得B[i].现在要求不能使用护发,只能使用其他方法。更高效的算法

2016-10-11 21:26:17 410

原创 剑指Offer面试题51:数组中的重复数字

题目:数组中的重复数字           在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出的重复数字是2或者3.算法分析:算法1.解决这个问题的一个简单的方法是先把输入的

2016-10-10 23:00:15 736

转载 剑指Offer面试题49:把字符串换成整数

题目:把字符串换成整数算法分析:这看起来是很简单的题目,实现基本功能 ,大部分人都能用10行之内的代码解决。可是,当我们要把很多特殊情况即测试用例都考虑进去,却不是件容易的事。解决数值转换问题本身并不难,但我希望在写转换数值的代码之前,应聘者至少能把空指针,空字符串”“,正负号,溢出等方方面面的测试用例都考虑到,并且在写代码的时候对这些特殊的输入都定义好合理的输出。当然,这些输出并

2016-10-10 21:19:45 369

转载 剑指Offer面试题47:不用加减乘除做加法 Java实现

题目:不用加减乘除做加法          写一个函数,求两个整数之和,要求在函数体内不得使用+,-,x,÷四则运算符号。算法分析:面试的时候被问道这个问题,首先我们分析人们是如何进行十进制的加法的,比如是如何得出5+17=22的结果的,实际上,我们可以分三步进行:第一步只做各位相加不进位,此时相加的结果是12,第二步做进位,5+7中有进位,进位的值为10;第三步,把前

2016-10-10 21:09:33 462

转载 剑指Offer面试题45:圆圈中最后剩下的数字

题目:圆圈中最后剩下的数字        0,1,2,3,4……n这n个数字排列成一个圆圈,从数字0开始每次从这个圆圈里删除第m个数字。求出这个圆圈最后剩下的一个数字。算法分析:本题是有名的约瑟夫(josephuse)环问题。  例如,0,1,2,3,4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是:2,0,4,1,因此最后剩下的元素是

2016-10-09 20:59:29 409

转载 剑指Offer面试题44:扑克牌的顺子 Java实现

题目:扑克牌的顺子         从扑克牌中随机抽出5张牌,判断是不是一个顺子,即这五张牌是不是连续的。2——10为数字本身,A为1,J为11,Q为12,K为13,而大小王为任意数字。算法分析:我们需要把扑克牌的背景抽象成计算机语言。不难想象,我们可以把五张牌看成由五个数字组成的数组。大小王是特殊的数字,我们不妨把他们定义为0,这样就能和其他牌区分开来了。

2016-10-09 20:57:01 2851

stm32的RTC计时程序

在STM32的嵌入式开发板上,采用RTC进行计时,利用RTC计时来代替系统时钟

2016-02-14

java输出各种菱形代码

通过java语言输出各种菱形图案,可以用于基本的java编程,是java语言的基础练习

2016-02-14

stm32 ADC采集温度

基于STM32嵌入式芯片的ADC采集程序,尤其适合国信长天开发板

2015-04-01

stm32嵌入式 UART接收程序

stm32嵌入式的UART接收程序,在PC机上用串口发送,在开发板上接收

2015-04-01

空空如也

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

TA关注的人

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