【试题描述】写一个函数,求两个整数的和,要求在函数体内不得使用加减乘除四则运算符合。
【试题来源】未知
【参考代码】
int add(int num1, int num2) { |
【试题描述】写一个函数,求两个整数的和,要求在函数体内不得使用加减乘除四则运算符合。
【试题来源】未知
【参考代码】
int add(int num1, int num2) { |
【试题描述】我们把只包含因子2、3和5的数称作丑数。求按从到大的顺序的第1500个丑数。例如6,8是丑数,而14不是,因为它包含因子7.习惯上把1当作第一个丑数。
【试题来源】未知
【参考代码】
int Min(int a, int b, int c) { |
【试题描述】输入一个二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成的一条路径。
【试题来源】未知
【参考代码】
void findPath(BinaryTreeNode* rootNode, int expectSum, |
【试题描述】输入一棵二叉树的根结点,求该树的深度。从根结点到叶子结点依次经过的结点(含根、叶子节点)形成树的一条路径,最长路径的长度为树的深度。
【试题来源】未知
【参考代码】
int treeDepth(BinaryTreeNode* rootNode) { |
【试题描述】输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab,cba。
【试题来源】未知
【参考代码】
#include <iostream> |
【试题描述】数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
【试题来源】未知
【试题分析】时间复杂度O(n),空间复杂度O(1)
【参考代码】
int findMoreThanHalf(int array[], int n) { |
【试题描述】统计一个数字在排序数组中出现的次数。例如输入的排序数组{1, 2, 3, 3, 3, 3, 4, 5}
和数字3,由于3在这个数组中出现了4次,因此输出4。
【试题来源】未知
【参考代码】
int GetFirstK(int array[], int length, int start, int end, int k) { |
【试题描述】输入n个整数,找出其中最小的k个数。
【试题来源】未知
【参考代码】
void leastKNum(int array[], int n, int k) { |
最大K个数代码如下:
void topKNum(int array[], int n, int k) { |
【试题描述】输入一个整型数组,数组里有正数也有负数。数组中一个或连续的多个整数组成一个子数组。
求所有子数组的和的最大值。要求时间复杂度O(n)。
【试题来源】未知
【参考代码】
int findGreastestSumOfSubArray(int array[], int n) { |
【试题描述】输入一个整数数组,判断该数组是不是某二叉排序树的后序遍历结果。如果是则返回true,否则返回false。假设输入的数组的任意两个数字互不相同。
【试题来源】未知
【参考代码】
#include <iostream> |