剑指offer面试集锦
文章平均质量分 71
小屁孩2013
这个作者很懒,什么都没留下…
展开
-
数组中的逆序对数(剑指offer36)
题目:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。原创 2014-04-24 12:35:07 · 1564 阅读 · 1 评论 -
二叉树中和为某一值的路径(剑指offer25)
题目:输入一二叉树和一个整数原创 2014-04-26 22:56:13 · 651 阅读 · 0 评论 -
二叉树的镜像(剑指offer19)
题目:请完成一个函数,输入一个二叉树原创 2014-04-27 21:55:17 · 629 阅读 · 0 评论 -
重建二叉树(剑指offer6、编程之美3.9)
题目:1.给出二叉树的前序和中序遍历序列,构建出这个二叉树;2.根据二叉树原创 2014-04-27 20:28:06 · 676 阅读 · 0 评论 -
树的子结构(剑指offer18)
题目:输入两棵二叉树A和B,判断B是不是A的子结构。二叉树的结点定义如下:原创 2014-04-27 21:30:09 · 682 阅读 · 0 评论 -
找到和为sum的两个数(剑指offer41、编程之美2.12)
1.蛮力法——时间复杂度为O(n)原创 2014-04-06 23:39:14 · 927 阅读 · 1 评论 -
第一个只出现一次的字符(剑指offer35)
题目:在字符串中找出第一个只出现一次的字符。如输入“aaabbc”原创 2014-04-28 11:23:05 · 782 阅读 · 1 评论 -
【剑指offer28】字符串的全排列和组合
题目:输入一个字符串或一组数字,输出其全部的排列和组合1.全排列原创 2014-04-09 22:46:13 · 981 阅读 · 0 评论 -
数对之差的最大值(剑指offer61)
1.利用分治法求解//利用分治法int maxNumberDifference(int* array, int length) { if (NULL == array || length < 2) { return 0x80000000; } int max = 0, min = 0; return numberDifference(array, array + length原创 2014-04-28 22:43:50 · 924 阅读 · 0 评论 -
求二叉树的深度及判断一个二叉树是否是二叉平衡树(剑指offer39)
1.二叉树结点的数据结构struct BinaryTreeNode { int m_nValue; BinaryTreeNode* m_pLeftChild; BinaryTreeNode* m_pRightChild;};2.二叉树的深度(递归式)int binaryTreeDepth(BinaryTreeNode* rootNode) { if (NULL == ro原创 2014-04-03 22:14:09 · 684 阅读 · 0 评论 -
只出现一次的数字(剑指offer40)
1.暴力穷举法——时间复杂度为O(n^2),空间复杂度为O(1).int findOnlyNumberWithExhaustion(int* array, int length) { if (NULL == array || 0 >= length || (length & 1)) { std::cerr << "Invalid Parameters." << endl; retur原创 2014-04-06 20:09:51 · 722 阅读 · 0 评论 -
调整数组的顺序使得奇数位于偶数的前面(剑指offer14)
1.1.蛮力法类似于插入排序,只不过现在的"逆序"条件是奇偶性是否相同——时间复杂度为O(n^2),空间复杂度为O(1).原创 2014-04-07 14:23:26 · 652 阅读 · 0 评论 -
求二进制数中1的个数(剑指offer10 编程之美2.1)
1.借助栈,先求这个数的二进制表示,然后计算1的个数原创 2014-04-05 12:01:07 · 875 阅读 · 0 评论 -
翻转字符串(剑指offer42)
1.输入一个英文单词的顺序,翻转单词的顺序.例如输入的单词是"student",原创 2014-04-09 21:12:28 · 748 阅读 · 0 评论 -
寻找最小(或最大)的k个数(剑指offer30)
1.利用简单排序找到前k数原创 2014-04-05 22:09:50 · 659 阅读 · 0 评论 -
两个链表的第一个公共结点(剑指offer37)
题目:输入两个链表,找出它们的第一个公共结点。链表的结点定义如下:原创 2014-04-25 11:44:22 · 505 阅读 · 0 评论 -
排序数组中1的个数(剑指offer38)
题目:统计一个数字在排序数组中出现的次数。例如:输入一个排序数组{1,2,3,3,3,3,4,5} 和数字3,由于3在这个数组中的出现了4次,因此输出4.原创 2014-04-25 13:31:47 · 517 阅读 · 0 评论 -
连续子数组的最大和(剑指offer31)
问题:输入一个整型数组,数组里有正数也有负数。原创 2014-04-07 19:52:15 · 716 阅读 · 1 评论 -
查找旋转数组中的最小值元素(剑指offer8)
问题:题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转,输入一个递增排序的数组的一个旋转,输出数组旋转数组的最小元素。例如:数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.原创 2014-04-08 13:53:56 · 915 阅读 · 0 评论 -
杨氏矩阵的查找(二维数组中的查找——剑指offer3)
问题:在一个m行n列二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字6,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。原创 2014-04-09 19:43:11 · 735 阅读 · 0 评论 -
二叉树遍历算法总结(剑指offer23、编程之美3.10)
1.二叉树结点的数据结构struct BinaryTreeNode { char m_chChildTag; //后序遍历时用于标识其最新一次访问的是左孩子还是右孩子 char m_chData; //用于遍历时存储结点字符 int m_nValue; //用于结点是整数数值的情况 BinaryTreeNode* m_pLeftChild; BinaryTreeNode* m_pRigh原创 2014-04-03 10:37:06 · 678 阅读 · 0 评论