
面试算法
文章平均质量分 53
claien
这个作者很懒,什么都没留下…
展开
-
[面试算法]把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。
//把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。 void MoveSupperToEndWithOrginOrder( char* szSrc , int nSize ){int nLen = 0;for ( int i= 0; i < nSize; i++ ){//找到下一个大写字母if ( isupper(szSrc[i]) ){//检查大写字母连续的原创 2013-11-27 16:50:54 · 5239 阅读 · 0 评论 -
[面试算法]减少中间变量的面试题
1.利用数据源的特点,例如首位,空位等,暂时当临时变量使用。 2.如果需要中间变量做标志,可以考虑将数据源改变符号等针对数据源特点让数据源暂时做标志。 例如:数据源都是正数,那么取反就是一种标志。 3.利用递归,递归是开辟隐式存储空间。 例如: unsigned int mystrlen(const char *str) { if (str==NULL) return 0;原创 2013-11-28 12:55:32 · 1014 阅读 · 0 评论 -
[面试算法]链表类面试算法解题思路
面试算法解题思路 链表类 一、 一次遍历找链表倒数第n个节点 用两个指针顺序遍历,并保持他们的距离为n。当第一指针到达链表末尾,那么第二个指针就找到了倒数第n个节点。 二、判断单链表是否有环 因为不知道环开始在什么位置,所以不能用if(head = tail)这种方法。 两个指针同时顺序遍历链表,一个指针一次走两步,一个指针一次走一步。如果相遇则有环。原创 2013-07-19 10:14:39 · 993 阅读 · 0 评论 -
[面试算法]有一无符号整型数组,大小为10, 初始的数值随机,但在[0, 99]之间。请用C语言写一个过滤程序,令数组内的数据互不相等。
写了个算法实现,就想做个记录。以后有时间测试下正确性,以及是否有更好的思路。 //有一无符号整型数组,大小为10, 初始的数值随机,但在[0, 99]之间。请用C语言写一个过滤程序,令数组内的数据互不相等。 // 说明: // 1.若数组内有相等的数据,可令某一数值加1或减1作出偏移,直至不等为止。 // 2.数组内的数据只能在[0, 99]之间。 // 3.数组第一次出现的数据保持不变原创 2014-02-25 22:35:32 · 3505 阅读 · 0 评论