随笔 - 276  文章 - 0  评论 - 32  阅读 - 56万

随笔分类 -  《剑指OFFER》读书笔记

1 2 3 下一页
面试题56:链表中环的入口节点
摘要:ListNode* EntryNodeOfLoop(ListNode* pHead) { bool haveCircle = false; if (pHead == NULL || pHead->next == NULL) //空链表或只有一个节点 return NULL; ListNode *slow = pHead; ListNode *... 阅读全文
posted @ 2016-09-08 16:20 已停更 阅读(224) 评论(0) 推荐(0) 编辑
面试题52:缺少i的乘积数组
摘要:vector multiply(const vector& A) { int len = A.size(); vector result(len, 1); result[0] = 1; for (int i = 1; i = 0; i--) { tmp = tmp * A[i + 1]; //tmp保存上三角 ... 阅读全文
posted @ 2016-09-08 15:26 已停更 阅读(217) 评论(0) 推荐(0) 编辑
面试题51:数组中重复的数字
摘要:哈希 时间On 空间On 方法二 时间On空间O1 阅读全文
posted @ 2016-09-07 21:47 已停更 阅读(212) 评论(0) 推荐(0) 编辑
面试题50:树中两个节点最低公共祖先
摘要:树是查找二叉树 也就是树是排序过的,位于左子树上的结点都比父结点小,而位于右子树的结点都比父结点大。我们只需要从根结点开始和两个结点进行比较。如果当前结点的值比两个结点都大,则最低的共同父结点一定在当前结点的左子树中。如果当前结点的值比两个结点都小,则最低的共同父结点一定在当前结点的右子树中。 树不 阅读全文
posted @ 2016-07-21 20:28 已停更 阅读(839) 评论(0) 推荐(0) 编辑
面试题49:把字符串转换成整数(atoi)
摘要:需要考虑的问题都已在程序中注释 带测试的完整代码: 1 #include<iostream> 2 using namespace std; 3 4 bool isValid; 5 6 int StrToInt(const char* str) 7 { 8 isValid = false; 9 //不 阅读全文
posted @ 2016-07-21 16:54 已停更 阅读(320) 评论(0) 推荐(0) 编辑
面试题48:不能被继承的类
摘要:C11已有关键字final 首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继承的时候,必然会由于试图调用构造函数、析构函数而导致编译错误。 阅读全文
posted @ 2016-07-20 15:55 已停更 阅读(1177) 评论(0) 推荐(0) 编辑
面试题47:不用+、-、×、÷做加法
摘要:题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。 异或解决当前位,与和左移解决进位 阅读全文
posted @ 2016-07-20 15:41 已停更 阅读(215) 评论(0) 推荐(0) 编辑
面试题46:求1+2+ …… +n
摘要:题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。 通常求1+2+…+n除了用公式n(n+1)/2之外,无外乎循环和递归两种思路。由于已经明确限制for和while的使用,循环已经不能再用了。同样,递归函数也 阅读全文
posted @ 2016-07-20 15:37 已停更 阅读(434) 评论(0) 推荐(0) 编辑
面试题43,44,45
摘要:三个抽象建模问题: 选择合理数据结构 分析模型中内在规律 面试题43:n个骰子点数 面试题44:扑克牌的顺子 http://www.nowcoder.com/practice/762836f4d43d43ca9deb273b3de8e1f4?tpId=13&tqId=11198&rp=3&ru=/t 阅读全文
posted @ 2016-07-20 14:50 已停更 阅读(206) 评论(0) 推荐(0) 编辑
面试题42:翻转单词顺序 || 左旋字符串
摘要:翻转单词顺序 注意ReverseSentence中if条件的顺序,开始把 if(*pBegin == ' ')和 if(*pEnd == ' ' || *pEnd == '\0') 顺序颠倒了,这样会陷入死循环 左旋字符串 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 阅读全文
posted @ 2016-07-19 21:33 已停更 阅读(200) 评论(0) 推荐(0) 编辑
面试题41:和为s的两个数字 || 和为s的连续正数序列
摘要:和为s的两个数字 题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。 有点类似于夹逼的思想 注意两个int相加的和要用long long类型比较规范 和为s的连续正数序列 题目:输入一个正数S,打印出所有和为S的连续正数序 阅读全文
posted @ 2016-07-19 09:57 已停更 阅读(244) 评论(0) 推荐(0) 编辑
面试题40:数组中只出现一次的数字
摘要:题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1) 从头到尾依次异或数组中的每一个数字,那么最终得到的结果就是两个只出现一次的数字的异或结果。因为其他数字都出现了两次,在异或中全部抵消掉了。由于这两个数字肯 阅读全文
posted @ 2016-07-19 08:21 已停更 阅读(321) 评论(0) 推荐(0) 编辑
面试题39:二叉树的深度、判断二叉树是不是平衡
摘要:题目一: 题目二:判断二叉树是不是平衡 法一:利用TreeDepth判断 上面的代码固然简洁,但我们也要注意到由于一个节点会被重复遍历多次,这种思路的时间效率不高。例如在函数IsBalance中输入上图中的二叉树,首先判断根结点(值为1的结点)的左右子树是不是平衡结点。此时我们将往函数TreeDep 阅读全文
posted @ 2016-07-18 16:33 已停更 阅读(227) 评论(0) 推荐(0) 编辑
面试题38:数字在排序数组中出现的次数
摘要:考察二分查找,找到第一个k和最后一个k,注意二分查找while (start <= end)是 <=以及如果找不到返回-1,然后再做处理 阅读全文
posted @ 2016-07-13 14:56 已停更 阅读(181) 评论(0) 推荐(0) 编辑
面试题37:两个链表的第一个公共节点
摘要:常考问题, 先要分别遍历两个链表得到它们的长度,并求出两个长度之差。在长的链表上先遍历若干次之后,再同步遍历两个链表,知道找到相同的结点,或者一直到链表结束。此时,如果第一个链表的长度为m,第二个链表的长度为n,该方法的时间复杂度为O(m+n) 阅读全文
posted @ 2016-07-13 13:53 已停更 阅读(352) 评论(0) 推荐(0) 编辑
面试题36:数组中的逆序对(归并排序思想)
摘要:在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如,有一个数组为Array[0..n] 其中有元素a[i],a[j].如果 当i<j时,a[i]>a[j],那么我们就称(a[i],a[j])为一个逆序对。在数组{7,5,6, 阅读全文
posted @ 2016-07-13 11:39 已停更 阅读(471) 评论(0) 推荐(0) 编辑
面试题35:第一个只出现一次的字符
摘要:用数组实现一个哈希表,存储元素次数 判断字符出现次数的类似问题可以考虑基于数组创建一个简单的哈希表 阅读全文
posted @ 2016-07-12 16:12 已停更 阅读(260) 评论(0) 推荐(0) 编辑
面试题34:丑数
摘要:题目:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数。 分析:这是一道在网络上广为流传的面试题,据说google曾经采用过这道题。 所谓一个数m是另一个数n的因子 阅读全文
posted @ 2016-07-12 15:52 已停更 阅读(262) 评论(0) 推荐(0) 编辑
面试题32:从1到n整数中1出现的次数
摘要:这是一道广为流传的google面试题。用最直观的方法求解并不是很难,但遗憾的是效率不是很高;而要得出一个效率较高的算法,需要比较强的分析能力,并不是件很容易的事情。当然,google的面试题中简单的也没有几道。 硬上:O(nlogn) 方法二: 我们用一个稍微大一点的数字21345作为例子来分析。我 阅读全文
posted @ 2016-07-12 11:08 已停更 阅读(365) 评论(0) 推荐(0) 编辑
面试题31:连续字数组的最大和
摘要:当前面计算的和是负数时,就没必要再用前面的结果了,curSum就等于当前数字,另外一个比较关键的问题是maxSum初值为最大的负数,只有这样才能保证一个序列最大值为负数时的结果正确性 阅读全文
posted @ 2016-07-12 10:34 已停更 阅读(220) 评论(0) 推荐(0) 编辑

1 2 3 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示