遇到的面试中的编程题总结
2013-10-13 08:33
253 查看
一、找出单链表的中间元素
思路:
(1)常规解法;【不好】
(2)两个指针,一个指针是另一个指针移动速度的两倍,当快的指针指向链表的尾部时,慢的指针就指向了链表的中间元素。
同理,可以求出单链表的任意倍数的位置,并且只需要扫描一遍单链表。如求指向单链表1/3,1/4,1/5,2/3等位置的元素。
二、给定整形数组,完善函数,将数组排序。
int sort_descending(int array[])
常规错误:通过sizeof(array)/sizeof(int)获得整形数组的长度,然后进行排序。
错误原因:该函数参数是指向整形数组的首地址,并不知道整形数组的长度,通过sizeof array 得到的值为4(指针的长度)。
解决方法:(1)通过形参给定整形数组长度。显然这种方法已经不行了;
(2)在整形数组最后添加最大或最小的整数,最小的整数为0x80000000,最大的为0x7fffffff(sizeof int = 4)
思路:
(1)常规解法;【不好】
(2)两个指针,一个指针是另一个指针移动速度的两倍,当快的指针指向链表的尾部时,慢的指针就指向了链表的中间元素。
同理,可以求出单链表的任意倍数的位置,并且只需要扫描一遍单链表。如求指向单链表1/3,1/4,1/5,2/3等位置的元素。
二、给定整形数组,完善函数,将数组排序。
int sort_descending(int array[])
常规错误:通过sizeof(array)/sizeof(int)获得整形数组的长度,然后进行排序。
错误原因:该函数参数是指向整形数组的首地址,并不知道整形数组的长度,通过sizeof array 得到的值为4(指针的长度)。
解决方法:(1)通过形参给定整形数组长度。显然这种方法已经不行了;
(2)在整形数组最后添加最大或最小的整数,最小的整数为0x80000000,最大的为0x7fffffff(sizeof int = 4)
相关文章推荐
- 微软面试、经典算法、编程艺术、红黑树4大系列总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载
- java面试过程中经常遇到的一些试题的总结(1)
- c++(c语言)编程过程中遇到的细微问题总结(持续更新)
- 关于日常编程中遇到小问题总结
- 近期面试遇到的问题以及总结(python和openstack)
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- C/C++ 面试前 遇到问题总结
- [综合面试] 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 总结一下今天在编程中遇到的问题和相应的解决办法
- 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 2015-07-27 20:49 13人阅读 评论(0) 收藏
- qt学习笔记(四) qt编程时遇到的问题的总结
- 总结一下面试中遇到的问题,一共面试了4家公司。
- Android--面试中遇到的问题总结(三)
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
- 总结我在几个大公司面试中遇到的问题
- 程序员编程艺术第一~十章集锦与总结--面试、算法、编程