![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔试题系列
askunix_hjh
这个作者很懒,什么都没留下…
展开
-
【面试题】空格替换
描述: 实现一个函数,把字符串中的每个空格替换成“%20”。 例如: 输入:我是个男孩! 输出:i%20am%20a%20boy!问题拓展: 这样的问题在网络编程中会实际运用,如果URL参数中含有特殊字符,如空格, '#'等,可能会导致服务器无法获得正确的参数值,所以就需要将这些字符转化为可以识别的字符。 转换规则是在%后面加上ASCII码...原创 2018-05-25 11:23:21 · 387 阅读 · 0 评论 -
【笔试题】二维数组中的查找
题目描述: 在一个二维数组中,从左到右从上到下都是递增的,给一个数x,判断x是否在矩阵中。要求效率尽可能的高。思路分析:代码实现:int SearchNum(int *arr, int K, int row, int col){ int found = 0; if (arr != NULL && col > 0 &&a...原创 2018-08-09 18:13:33 · 356 阅读 · 0 评论 -
【笔试题】找出数组中重复的数字
题目描述 在一个数组长度为n的数组里,所有数字都在 0 ~ n-1 范围内,数组中某些数字是重复的,但不知道几个数字重复了,也不知道每个数字重复了多少次,请找出数组中重复的数字。思路一:插排思想(比较挫,时间复杂度:n²)因为要输出任意一个重复的数字,只要一个数字出现次数等于两次,就可以输出这个数了。可以选取第一个数作为基准,依次遍历这个数之后的所有数,如果有相等的数,就直接返回...原创 2018-08-04 21:48:34 · 14893 阅读 · 5 评论 -
【面试题】字符串中第一个只出现一次的字符
问题描述: 在字符串中找出第一个只出现一次的字符,例如字符串 str = “abcdabcdef “,那么对于这个字符串,第一个只出现一次的字符就是 e 。首先这道题可以考虑遍历:从第一个字符开始,挨个与后面字符作比较,如果有重复的字符,就跳出本次循环,再从第二个字符开始往后比较,类似Bubble_Sort,在这种做法中,就是利用两层for循环就可以搞定。但是时间复杂度为O(n^...原创 2018-07-15 14:38:05 · 3249 阅读 · 0 评论 -
【笔试题】奶牛等分苹果
来源牛客网:链接题目描述n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。输入描述: 每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一...原创 2018-07-24 19:34:59 · 1179 阅读 · 0 评论 -
[笔试题]Fibonacci数与给定目标数之间的最小步数
来源:牛客网点击进入题目描述Fibonacci数列是这样定义的:F[0] = 0 F[1] = 1 for each i ≥ 2: F[i] = F[i-1] + F[i-2]因此,Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, …,在Fibonacci数列中的数我们称为Fibonacci数。给你一个N,你想让其变为一个Fibonacci...原创 2018-07-24 17:53:39 · 1360 阅读 · 0 评论 -
【面试题】求连续子数组的最大和(三种解法)
题目描述 给定一个数组 array[1, 4, -5, 9, 8, 3, -6],在这个数字中有多个子数组,子数组和最大的应该是:[9, 8, 3],输出20,再比如数组为[1, -2, 3, 10, -4, 7, 2, -5],和最大的子数组为[3, 10, -4, 7, 2],输出18。暴力解法思路分析1、可以将给定数组的的所有子数组列出来,然后找到子数组和做大的情况,具...原创 2018-06-26 16:05:03 · 50883 阅读 · 21 评论 -
【面试题】链表K翻转
题目描述:给定链表: 1 -&gt; 2 -&gt; 3 -&gt;4 -&gt; 5 -&gt; 6 -&gt; 7 -&gt; 8 , 如果 K = 2,翻转后则为:2 -&gt;1 -&gt; 4 -&gt; 3 -&gt; 6 -&gt; 5 -&gt; 8 -&gt; 7原创 2018-06-22 21:02:54 · 1311 阅读 · 0 评论 -
【面试题】数组中出现次数超过数组长度一半的数字
描述: 在一个一维数组中存放了size个元素,其中某个元素重复出现的次数超过数组长度的一般,也就是出现了 size/n 次,请返回这个数。思路一:排序法 对元素排序,如果此数字出现次数大于整体长度一半,则中间的数字一定是这个数字。(前提是一定有数字出现次数大于长度一半,否则会出错),为了尽可能缩短时间复杂度,可以选择快排。int MoreThanHalfNum(int ...原创 2018-06-22 18:35:46 · 1855 阅读 · 0 评论 -
【面试题】反转链表的递归和非递归实现
题目描述: 定义一个函数,输入链表的头结点,反转该链表并输出反转后链表的头结点。链表定义如下:struct Node{ DataType List; struct List* _pNext;};typedef struct List Node;typedef Node *pNode;反转是链表重复性的操作,可以用到递归,或者while()循环实现。...原创 2018-06-12 17:10:22 · 1159 阅读 · 0 评论 -
【面试题】翻转字符串
题目描述: 输入:i am a student. 输出:student. a am i分析: 这道题的关键是对字符串的控制,首先,将字符串完全翻转一次,得到 .tneduts a ma i 然后设置两个指针,对单词进行翻转,也就是局部翻转。代码实现:#include&lt;stdio.h&gt;#include&lt;...原创 2018-05-29 14:26:18 · 1146 阅读 · 0 评论 -
【面试题】两个有序链表的合并问题
题目描述: 给定两个无头有序单链表(都是从小到大的顺序排列),请合并为一个链表,使新链表也有序。 pHead1:-2、3、9、10 pHead2:2、5、9 pNewHead:-2、2、3、5、9、9、10 题目分析: 这道题目很重点,所以分析会在代码注释中体现。 如果面试过程中被提问,要明确是带头单链表,还是不带头结点单链表。 方法...原创 2018-05-23 20:07:43 · 1208 阅读 · 0 评论 -
【笔试题】大整数相加
本机环境:64位Centos 7.4,vim、gcc编译工具。假设用户输入的数据保存在数组adda,addb中,如果手工计算,就是从低位到高位依次先加,满十进一,那么有两个问题需要解决。问题:1、用数组保存结果,那么结果的长度是多少位? 两个数相加,结果最大也只能比较大的那个数多一位。lensum = lena &gt; lenb ? lena : lenb;l...原创 2018-08-29 12:51:46 · 498 阅读 · 0 评论