自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 剑指offer:重建二叉树(C语言)

题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中不包含重复的数字。二叉树节点的定义如下:#include<stdio.h>#include<stdlib.h>//二叉树结构的定义typedef struct BinaryTreeNode{ int m_nValue; struct BinaryTreeNo...

2018-10-29 23:33:16 1826

原创 剑指offer:打印1到最大的n位数(C语言)

题目:输入数字n,按顺序打印从1到最大的n位十进制数。比如输入3,打印1到999。分析:这个题目需要考虑两个问题,一个是这个数字可能会小于等于0;另一个是这个数字可能非常大,我们应该如何保存这个数字?这里说到表示大数,可以用到的方法有字符串和数组! #include&lt;stdio.h&gt;#include&lt;string.h&gt;int Increment(char ...

2018-10-29 23:21:19 363

原创 剑指offer:二叉树的下一个节点(C语言)

题目:给定一棵二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中的节点除了有两个分别指向左、右子节点的指针,还有一个指向父节点的指针。分析如下:1、如果该节点是普通节点(该情况适用于根节点),如果它的右孩子存在,则需要找它的有孩子的左子节点,直到找到叶子节点,这个叶子节点就是下一个节点了;由于是中序遍历,左孩子的情况不用考虑了。2、如果该节点是父节点的左孩子,则下一个节点就是其父节...

2018-10-29 23:19:38 278

原创 剑指offer:二维数组中的查找(C语言)

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一行都按从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判读数组中是否含有该整数。分析:首先想到的是遍历整个数组,这样肯定能找出来,但是那样的时间复杂度就是O(n)了。按照常规来说,这个是不可取的。既然这是一个有规律的数组,那么我们可以找到一个突破口,如果我们找这个数组的左上角或者右下角的值,这两个值都是最小...

2018-10-29 23:17:55 831

原创 剑指offer:机器人的运动范围(C语言)

题目:地上有一个m行n列的方格。一个机器人从坐标(0,0)的格子开始移动,它每一次可以向左右上下移动一格,但不能进入行坐标和列坐标之和大于K的格子。例如,当k为18的时,机器人能够进入的方格(35,37),因为3+5+3+7=18.但是它不能进入方格(35,38),因为3+5+3+8=19。请问该机器人能够到达多少个格子?分析:本质上是和前面矩阵中的路径一样的问题,都是利用回溯法来实现。...

2018-10-29 23:16:08 486

原创 剑指offer:矩阵中的路径(C语言)

题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3*4的矩阵中包含一条字符串”bfce”的路径(路径中的字母用红色标出)。但矩阵中不包含字符串”abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个格...

2018-10-29 23:14:11 532 1

原创 快速幂取余算法(C语言)

首先,我们得知道一个公式(a^b) mod c=((a mod c)^b) mod c现在,我们不考虑任何其他情况,也不考虑程序的健壮性,我们算一个幂次a^b算法一int result = 1;for(int i = 0; i &lt; b; i++){ result *= a;}return result;这个算法的时间复杂度为O(n),显然,我们必须找到一个复杂度低...

2018-10-29 23:11:49 4316 1

原创 剑指offer:用特定字符替代字符串中的空格(C语言)

题目:请实现一个函数,把字符串中的每个空格替换成”%20”。分析:最简单的就是在弄来一个比已有字符串数组更大的数组,然后复制过,碰到空格就写入“%20”,这样就会浪费内存空间。还有就是从前往后推,碰到空格用”%20”来替代,后面的数组往后挪动,这样的时间复杂度是O(n2)。得找到一个时间复杂度和空间复杂度相对小的方法,书中提供的是从后往前挪动。代码如下:#include&lt;std...

2018-10-29 23:08:12 293

原创 剑指offer:正则表达式匹配(C语言)

题目:请实现一个函数用来匹配包含’.’和’*’的正则表达式。模式中的字符’.’表示任意一个字符,而’*’表示它前面的字符可以出现任意次(包括0次)。例如,字符串”aaa”与模式”a.a”和”ab*ac*a”匹配,与”aa.a”和”ab*a”均不匹配。分析:如果模式中是字符或者”.”时,都只会匹配一个字符,只是字符需要与之相互匹配,而”.”可以和任何一个字符匹配;而对于”*”,就需要分情况来考虑...

2018-10-29 23:05:01 311

原创 剑指offer:查找最大子数组(C语言)

题目:一个整数数组中的元素有正有负,在该数组中找出一个连续的数组,要求连续的数组的和是最大的,我们成这个子数组就是最大的连续子数组。分析:对于这个找最大子数组的数组,如果这个数组里面全部是正数,那就不用考虑了,所有元素相加就是最大的子数组了;如果全部为负,则就是找里面的最大的元素;如果有正有负,则情况会麻烦一下。下面提供四种解法。解法一:int FindSubSum1(int *ar...

2018-10-29 23:02:32 539

空空如也

空空如也

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

TA关注的人

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