Interview_Questions
wyh94945
这个作者很懒,什么都没留下…
展开
-
数组中只出现过一次的数字
一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 要想解决这道题,首先要知道这道题的简单版本:一个整型数组里除了一个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 这道题的关键是两次,为什么其他数字都出现2次?不是3次4次?因为 异或 有一个特殊的性质,一个数异或本身等于0; 那么我们将数组内的所有元素异或一下,两两配对的元原创 2017-09-22 22:21:27 · 263 阅读 · 0 评论 -
单链表的反转
链表是数据结构中比较重要的一段内容,面试中也很多关于链表的问题。今天学习了链表的反转,总结一下,大致有5个方法。 结构体声明如下/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*/ 1.将旧链表内容存进数组,再倒序的方式存入链表 比原创 2017-09-18 16:01:59 · 414 阅读 · 0 评论 -
快速幂计算
剑指offer里有一个计算整数幂的题目,并不是看一眼就懂的题目。 题目用pow()也可以过,但是考点当然不是用库函数 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 1.先说一个不用递归的经典求快速幂的方法 举个例子,a^11 把11转化为2进制,是1011 = 2^0 + 2^1 + 2^3 .原创 2017-09-21 07:57:21 · 283 阅读 · 0 评论 -
包含MIN函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 这题的解法比较巧妙,方法是分别用_stack存进数据,_min实时更新最小值, _stack.pop()的时候如果弹出了一个最小值(也就是弹出值_stack.top()=_min.top()),那么把_min.top()也弹出, 即更新了最小值(回到上一次的最小) class Solution { public:原创 2017-09-21 22:48:36 · 180 阅读 · 0 评论 -
判断栈的弹出序列是否正确
输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。 假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的) 很好的一道题,类似的问题还有栈的弹出可能有几种(PS:Catalan数),列出栈的弹出的所有可原创 2017-09-21 23:26:13 · 622 阅读 · 0 评论