- 博客(6)
- 收藏
- 关注
转载 面试题12: 打印1到最大的n位数(递归解法,全排列的递归解法)
题目:输入数字n,按顺序打印出从1到最大的n为十进制数,比如输入3,则打印出1、2、3一直到最大的3位数即999 代码: //Recursively reslove void Print1ToMaxOfNdigitalRecursively(char *number, int length, int index) { if (index == length - 1)
2015-05-29 17:18:25
755
转载 面试题12: 打印1到最大的n位数v
题目:输入数字n,按顺序打印出从1到最大的n为十进制数,比如输入3,则打印出1、2、3一直到最大的3位数即999 代码: void Print1toMaxOfNDigital(int n) { if(n return; char *number = (char *)malloc(sizeof(char) * (n + 1)); memset(n
2015-05-29 16:21:51
549
翻译 面试题9:斐波那契数列
题目一:写一个函数,输入n,求斐波那契数列的第n项,斐波那契数列的定义如下: 0 n = 0 f(n) = 1 n = 1 f(n - 1) + f(n - 2) n > 1 递归: long long Fibonacci(unsigned int n)
2015-05-08 11:02:15
495
转载 面试题10:二进制1的个数
最好的方式: 思想:一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.那么一个整数的二进制表示中有多少个1,就可以进行多少次这样的操作。 int NumberOf1(int n) { int count = 0; while(n != 0) { count++: n = (n - 1) & n; } return count; }
2015-05-08 10:35:55
406
转载 数组中只出现一次的数字
题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次,请写程序找出这两个只出现一次的数字。要求时间复杂度为o(n),空间复杂度为o(1). 例如:{2,4,3,6,2,3,5,5},输出4、6 首先若是只存在一个出现一次的数字,找出此数字,就是通过异或。 若是存在两个,解决思路:将这两个不同的数字分在不同的两个组中,每个组只存在一个出现一次的数字。 分组方法:1、全部异或,然后
2015-05-08 10:14:17
466
转载 面试题40:顺时针打印矩阵
题目:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每个数字,例如:如果输入一下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10 绘制图形有利于帮助解题 源代码: static void PrintMatrixClo
2015-05-08 09:33:04
442
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人