师兄面试总结编程部分解答之三
2014-08-27 20:23
246 查看
三、数组
1、指针数组,数组指针,指针函数,函数指针等的区别
int *ptr[]; int (*ptr)[]; int *func(int); int (*func)(int).由于添加括号造成的优先级不同
2、连续子数组的最大和
有时间复杂度的限定,必须考虑和小于0就直接舍去(剑指offer 171页)
判断下一个遍历的数字是否与之前保存的那个数字相同(剑指offer 165页)与 编程之美 上寻找“水王” 异曲同工。
要考虑用hash表(剑指offer 187页)
1、指针数组,数组指针,指针函数,函数指针等的区别
int *ptr[]; int (*ptr)[]; int *func(int); int (*func)(int).由于添加括号造成的优先级不同
2、连续子数组的最大和
有时间复杂度的限定,必须考虑和小于0就直接舍去(剑指offer 171页)
//看到的内容仅仅是将之前数组的最大值保留 //将当前得到最大值与 目前存储的最大值进行比较 int maxSubArray(int A[],int length) { if (A == NULL || length == 0) return 0; int currentMax = A[0];//当前子数组的最大值 int max = A[0];//子数组最大值 for(int i = 1; i < length; i++) { currentMax = currentMax + A[i] > A[i] ? currentMax + A[i] : A[i]; max = currentMax > max ? currentMax : max; } printf("max sub array is %d",max); return max; }3、寻找数组中出现超过一半的数字
判断下一个遍历的数字是否与之前保存的那个数字相同(剑指offer 165页)与 编程之美 上寻找“水王” 异曲同工。
//寻找数组中超过一半的数组 //删除两两不同的元素,最终剩余元素即为想要的元素 //还有没有其他的解决方案 void findNum(int numList[],int len) { int record = numList[0]; int count = 1; for(int i = 1; i < len;i++) { if(count == 0) { record = numList[i]; count = 1; continue; } if(numList[i] != record) { count--; }else { count++; } } printf("%d\n",record); }4、第一次只出现一次的字符
要考虑用hash表(剑指offer 187页)
//第一次只出现一次的字符 void findFirstSingle(char* str) { int record[26] = {0}; int len = strlen(str); for(int i = 0; i < len; ++i) { int index = *(str + i) - 'a'; record[index]++; } char tmp; for(int i = 0; i < len; ++i) { int index = *(str + i) - 'a'; if(record[index] == 1) { tmp = *(str + i); break; } } printf("%c\n",tmp); }
相关文章推荐
- 师兄面试总结编程部分解答之二
- 师兄面试总结编程部分解答之五
- 师兄面试总结编程部分解答之一
- 师兄面试总结编程部分解答之四
- 系统编程部分知识点总结
- 微软面试、经典算法、编程艺术、红黑树4大系列总结
- 微软面试、经典算法、编程艺术、红黑树4大系列总结
- 微软面试、经典算法、编程艺术、红黑树4大系列总结
- Matlab 与 VC++ 混合编程过程详解(含问题部分解答)
- 【转】[IT综合面试]牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 微软面试、经典算法、编程艺术、红黑树4大系列总结
- 关于09年迅雷面试+笔试+上机题目的总结(解答来自网络)
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 《linux c 编程一站式学习》课后部分习题解答
- c++服务器编程面试总结
- erlang基础练习-编程指南习题部分解答
- 微软面试、经典算法、编程艺术、红黑树4大系列总结
- 【经验总结】服务器端编程部分概念理解
- 个人项目编程的部分总结1
- perl编程的部分问题总结