面试题:二进制中1的个数 题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把
面试题:二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2.
面试题:二进制中1的个数
题目:请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如把9表示成二进制是1001,有2位是1。因此如果输入9,该函数输出2.
第1题
面试题:和为s的两个数字VS和为s的连续正数序列
题目一:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,输出任意一对即可。
题目二:输入一下正数s,打印出所有和为s的连续正数序列(至少含有两个数)。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以结果打印出3个连续序列1~5、4~6和7~8。
第2题
面试题:把数组排成最小的数
题目:输入一个正数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323。
第3题
面试题:最小的k个数
题目:输入n个整数,找出其中最小的k个数。例如输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。
第4题
面试题:翻转单词顺序VS左旋转字符串
题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串 "I am a student",则输出 "student.a am I " 。
题目二:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如输入字符串 "abcdefg "和数字2,该函数将返回左旋转2位得到的结果 " cdefgab "。
第5题
面试题:包含min函数的栈
题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min、push及pop的时间复杂度都是O(1)。
第6题
面试题:替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"%20"。例如输入“We aer happy.”。
第7题
面试题:复杂链表的复制
题目:请实现函数ComplexListNode*Clone(ComplexListNode*pHead),复制一个复杂链表中,每个结点除了有一个m_pSibing指向链表中的任意结点或者NULL。结点的C++定义如下:
struct ComplexListNode
{
Int m_nValue;
ComplexListNode* m_pNext;
ComplexListNode* m_pSibling;
};
第8题
面试题:二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
第9题
面试题:二叉树的深度
题目一:输入一棵二叉权的根结点,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成的一条路径的长度为树的深度。
二叉树的结点定义如下:
struct BinaryTreeNode
{
int m_nValue ;
BinaryTreeNode* m_pLeft;
BinarvTreeNode* m_pRight ;
}
题目二:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。例如图6.1中的二叉树就是一棵平衡二叉树。
第10题
面试题:数组中只出现一次的数字
题目:一个整数数组里除了两个数字之外,其它的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂是O(n),空间复杂度是O(1)。