剑指offer
weixin_41318405
此人不懒,什么都留下了
展开
-
将一个字符串转化为整数——微软面试题
github地址:https://github.com/ALXlixiong/offer题目描述:将一串由数字(可能包含正负号)组成的字符串转化为整数;注意事项:(1)判断字符串是否为空;(2)判断数字是否溢出(正负号)(3)是否含有其他符号代码:#include<stdio.h>int str_num(char *str){ if(*str =...原创 2018-10-06 16:03:02 · 644 阅读 · 0 评论 -
二叉树的镜像
二叉树的镜像/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: void Mirror(TreeNo...原创 2019-04-04 15:08:37 · 81 阅读 · 0 评论 -
二叉树的层序遍历
层序遍历从上往下打印出二叉树的每个节点,同层节点从左至右打印。/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution ...原创 2019-04-04 15:18:36 · 104 阅读 · 0 评论 -
字符串通配符
题目描述问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)?:匹配1个字符输入:通配符表达式;一组字符串。输出:返回匹配的结果,正确输出true,错误输出false输入描述:先输入一个带...原创 2019-03-23 21:23:36 · 251 阅读 · 0 评论 -
二叉搜索树的后序遍历序列
二叉搜索树的后序遍历序列输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。class Solution {public: bool VerifySquenceOfBST(vector<int> sequence) { if(sequence.empty...原创 2019-04-04 15:55:46 · 89 阅读 · 0 评论 -
重建二叉树
重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。/** * Definition for binary tree * struct TreeNode { * int ...原创 2019-04-04 14:43:40 · 99 阅读 · 0 评论 -
面试题11——旋转数组的最小数字
题目:把一个数组的最开始若干个元素搬移到数组最后,我们称之为数组的旋转,现输入一个递增的旋转过的数组,例如我们输入{3,4,5,1,2},其实是由数组{1,2,3,4,5}旋转而来,现需要找到最小元素;方法描述:(1)顺序查找,遍历一次数组即可,但是时间复杂度O(N)(2)原来数组是有序的,有序数组我们查找一个数组元素使用二分查找,时间复杂度为O(logN),又因为旋转以后的数组其实是由两...原创 2018-04-02 23:33:07 · 190 阅读 · 0 评论 -
找到数组中重复的数字
题目一:找出数组中重复的数字;在一个长度为n的数组里,所有的数字都在0~n-1范围内,数组中某些数字是重复出现的,但不知道有几个数字重复出现了,也不知道每个数字重复出现了几次,请找出这个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出的重复数字是2或者3;方法一:暴力求解法时间复杂度O(N^2),空间复杂度O(1)方法二:哈希法时间复杂...原创 2018-03-24 22:08:39 · 3494 阅读 · 0 评论 -
面试题8——二叉树的下一个节点
题目:给定一颗二叉树和其中的一个节点,如何找出中序遍历序列的下一个节点?树中除了左右指针还有指向双亲的一个指针。 #include<stdio.h>#include<malloc.h>#include<assert.h>typedef struct BinTreeNode{ struct BinTreeNode *pLeft; str...原创 2018-10-27 17:36:39 · 146 阅读 · 0 评论 -
两个栈实现一个队列——两个队列实现一个栈
题目:两个栈实现一个队列#include<stdio.h>#include<assert.h>#include<malloc.h>#include<stdlib.h>#include<string.h>//////////////////////////stack.h////////////////////////...原创 2018-05-20 14:39:17 · 475 阅读 · 0 评论 -
面试题7——二叉树重建
题目:输入某一个二叉树的前序和中序遍历,重建该二叉树,返回二叉树的根节点#include<stdio.h>#include<assert.h>#include<malloc.h>typedef int DataType;typedef struct BinTreeNode{ struct BinTreeNode *pLeft; s...原创 2018-11-01 11:11:27 · 152 阅读 · 0 评论 -
常见位运算题目
在Excel2003中,用A表示第1列,B表示第2列......Z表示第26列,AA表示第27列,AB表示第28列......以此类推。请写出一个函数,输入用字母表示的列号编码,输出它是第几列。分析:其实这道题就是十进制和26进制之间的转化;A = 26^0 + 1 = 1AA = 26 * (26^0 + 1) + 1 = 26 * A + 1AAA = 26 * [26 *...原创 2018-03-24 21:29:57 · 730 阅读 · 1 评论 -
大数问题
题目一:对于一个整数N(512 <= N <= 1024),计算2的N次方并在屏幕显示十进制结果。输入:输入一个整数N(512 <= N <= 1024)输出:2的N次方的十进制结果算法思路:首先这道题是一种大数问题,很大的数字我们不可以用int来保存,所以我们可以使用数组或者字符串来保存。举个栗子:输入7,输出128;设计字符串使得输出为128...原创 2018-12-05 10:53:04 · 222 阅读 · 0 评论 -
搜索二叉树转化为排序双向链表
题目描述:输入一棵二叉搜索树,现在要将该二叉搜索树转换成一个排序的双向链表。而且在转换的过程中,不能创建任何新的结点,只能调整树中的结点指针的指向来实现。题目分析:要实现一个排序的双向链表,,首先想到的就是中序遍历。所以出现以下两种遍历修饰。 代码:Node *g_prev = nullptr;void SBTreeToLink(Node *root){ if(r...原创 2019-02-07 14:10:19 · 196 阅读 · 0 评论