剑指
qq_39589945
这个作者很懒,什么都没留下…
展开
-
剑指offer总结--面试相关题:合并有序数组
题目: 有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2.请实现一个函数,把A2中的所有数字插入到A1中,并且所有的数字都是有序的。 实现1:返回新数组 要点: 要返回一个新数组,这个数组在函数中需要用new的方式申请内存,这样的数组存储与堆中,在函数返回后并不会销毁,并且要在函数体外自行delete;如果数组在函数中使用普通变量的形式初始化,这样的数组存储在栈中,在函数返回后会销毁,导致函数体外访问异常; 一句话就是不能返回局部变量的指针或者引用! #include <ios原创 2020-07-27 14:53:11 · 126 阅读 · 0 评论 -
剑指offer总结--面试题1:赋值运算符函数
#题目:如下为类型CMyString的声明,请为该类型添加赋值运算符函数。 class CMyString { public: CMyString(char* pData = nullptr); CMyString(const CMyString& str); ~CMyString(void); private: char* m_pData; }; ##注意点 1.*连续赋值*:函数返回实例自身的引用(*this); 2.*形参为常量引用*:const保.原创 2020-07-24 11:54:28 · 132 阅读 · 0 评论 -
剑指offer总结--面试题3:数组中的重复数字
题目1:找出数组中的重复数字(可修改数组内容) 长度为n的数组里所有的数字都在0~n-1的范围内,请找出数组中的任意一个重复数字; 算法思路 判断数组下标 i 是否等于此下标上的元素number[i] , 如果相等则判断下一个下标i+1是否等于此下标上的元素number[i+1], 不相等则判断number[i] 和 number[number[i]]是否相等,相等的话则为重复数字,不等的话交换它们两个的位置; 例子: 数组num = {2,3,1,0,2,5,3} (1)i=0; 0!=2;交换num[0原创 2020-07-25 01:35:08 · 93 阅读 · 0 评论 -
剑指offer总结--面试题4:二维数组中的查找
题目: 在一个二维数组中,每一行都按照从左到右的递增顺序排序,每一列都按照从上到下递增顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组是否包含了该整数。 设待查找整数为num 在二维数组中随便找一个数n; (1)若n=num,则停止寻找; (2)若n>num,则num位于n的左边或上边; (3)若n<num,则num位于n的右边或下边; 思路 ...原创 2020-07-25 22:37:47 · 77 阅读 · 0 评论