码迷,mamicode.com
首页 >  
搜索关键字:剑指offer 面试题17    ( 3728个结果
[剑指Offer]40.数组中只出现一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路我们直到异或的性质:任何一个数字异或他自己都等于0. 所以说我们如果从头到尾依次异或每一个数字,那么最终的结果刚好只出现一次的数字,因为成对出现的两次的数字全部在异或中抵消了。这道题中有两个数字只出现一次。这样的话我们得到的结果就是这两个数字的异或结果。因此我们想办法把原数组分成两个子数组,使得每个子...
分类:编程语言   时间:2015-04-26 19:47:36    阅读次数:120
剑指offer—二进制中1的个数
题目: 实现一个函数,输入一个整数,输出该数二进制表示中1的个数。如9的二进制是1001,因此输入9输出2。 解法一:可能死循环 int num1(int n) { int count =0; while(n) { if(n&1) count++; n=n>>1; } return count;...
分类:其他好文   时间:2015-04-24 12:33:52    阅读次数:115
【剑指offer】逆序打印链表
用栈能很easy的解决,直接贴代码: struct ListNode{ int m_nValue; ListNode *m_pNext; }; void PrintListRevers(ListNode* pHead) { stack nodes; ListNode* pNode = pHead; while(pNode != NULL) { ...
分类:其他好文   时间:2015-04-24 01:08:40    阅读次数:110
剑指offer—旋转数组的最小数字
题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组(3,4,5,1,2)位{1,2,3,4,5}的一个旋转,该数组的最小值为1. 基本思想: 二分查找,p1指向a[0],p2指向a[len-1]。如果a[mid]>a[p1],则最小值在后半段,p1=mid;如果a[mid] 特殊情况: ...
分类:编程语言   时间:2015-04-23 17:27:23    阅读次数:123
剑指offer—替换字符串中空格
题目: 实现一个函数,把字符串中的每个空格替换成“%20”。加入输入“we are happy.”,则输出“we%20are%20happy.”。 时间复杂度为O(n^2) 基本思想:从前往后把字符串中的空格替换成%20. 假设字符串的长度为n,对每个空格字符,需要移动后面O(n)个字符,因此总的时间复杂度为O(n^2)。 时间复杂度为O(n) 基本思想:先遍历...
分类:其他好文   时间:2015-04-23 15:52:12    阅读次数:204
剑指offer—实现单例模式
题目:设计一个类,我们只能生成该类的一个实例。 解法一:懒汉式单例 1.适用于单线程环境 //懒汉式单例类.在第一次调用的时候实例化自己 public class Singleton { //私有的默认构造子 private Singleton() {} //注意,这里没有final...
分类:其他好文   时间:2015-04-23 13:35:20    阅读次数:1228
剑指offer—二维数组中找数
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 基本思想: 首先选取数组中右上角的数字。如果=要找的数字,结束。如果大于要找的数字,剔除这个数字所在的列;如果小于要找的数字,剔除这个数字所在的行。 #include using namespace...
分类:编程语言   时间:2015-04-23 13:29:32    阅读次数:141
【剑指offer】替换空格
请实现一个函数,把字符串中每个空格替换成“%20”。例如输入“we are happy.",则输出”we%20are%20happy.“。 创建一个新的字符串,传出,是一个比较好的思路。 #include #include using namespace std; int change(char *str, char *out) { int i=0,j=0; char *temp...
分类:其他好文   时间:2015-04-22 20:42:52    阅读次数:125
【剑指offer】二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行、每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返false。 1   2   8   9 2   4   9   12 4   7   ...
分类:编程语言   时间:2015-04-22 14:01:09    阅读次数:135
【剑指offer】赋值运算符函数
题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。 class CMyString { public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); CMyString& operator = (const CMyString...
分类:其他好文   时间:2015-04-22 00:43:45    阅读次数:198
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!