剑指offer
m0_43426943
这个作者很懒,什么都没留下…
展开
-
面试金典:猫狗收容所
一、题目描述:有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。 给定一个操作序列int[][2] ope(C++中为vector<vector<int>>)代表所有事件。若第一个元素为1,则代表有动物进入收容所,第二个元素为动物的编号,正数代表狗,负数代表猫;若第一个元素为2,则代表有人收养动物,第二个元素若为0,则采取第一种收养方式,若为原创 2020-09-04 22:13:08 · 265 阅读 · 0 评论 -
剑指Offer:(数组)连续子数组的最大和
一、题目HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)二、思路定义两个变量 当前和cur_sum、最大和max_原创 2020-08-04 22:02:58 · 79 阅读 · 0 评论 -
剑指offer:(数组)数组中只出现一次的数字
一、题目1、一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这1个只出现一次的数字。要求时间复杂度为O(n),控件复杂度为O(1)2、一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度为O(n),控件复杂度为O(1)二、思路1、当数组中只存在1个只出现一次的数字,遍历整个数字,并且元素异或即可得到结果。因为其他数字都要出现2次。a 异或 a =00异或 b=ba 异或 a异或 b =b2、现在有两个数字出现一次,那原创 2020-08-03 21:30:10 · 89 阅读 · 0 评论 -
剑指Offer:(数组)数组中出现次数超过一半的数字
数组中出现次数超过一半的数字一、题目数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0二、思路数组中有一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现次数的和还要多。因此我们可以考虑在遍历数组的时候保存两个值:一个是数组的一个数字,一个是次数。当我们遍历到下一个数字的时候,如果下一个数字和我们之前保存的数字相同,则次转载 2020-08-03 15:56:10 · 224 阅读 · 0 评论 -
剑指Offer(数组):调整数组顺序使奇数位于偶数前面
剑指Offer(数组):调整数组顺序使奇数位于偶数前面一、题目二、思路三、代码一、题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。二、思路 首先 统计数组中奇数元素个数num_odd; 然后创建一个新数组new int[length] 最后遍历原数组,当元素为奇数时,元素从0开始存入,当元素为偶数时,元素从newarray[num_odd]存入.三、代码#inc原创 2020-08-03 11:35:57 · 92 阅读 · 0 评论