![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程小组
文章平均质量分 53
安菲拉尔
这个作者很懒,什么都没留下…
展开
-
校招季——编程题目(3-5)
2013/08/13,秋季校招准备工作第二天。 3. 打乱数组 题目: 将一个长度为n的数组随机打乱。 解答: 思路:将数组内的每个元素与它所在位置到结尾之间的一个随机位置的元素交换: void Shuffle(int *data, int n) { int i; for (i = 0; i < n; ++i) Swap(&data原创 2013-08-13 23:31:41 · 752 阅读 · 0 评论 -
校招季——编程题目(6-7)
2013/08/15,第四天 6. 反转单词(题目007) 题目: 将字符串中的每个单词内的字母顺序倒转,其它字符不变 解答: void ReverseString(char *s) { int n = strlen(s), start = -1, i; for (i = 0; i <= n; ++i) if (!isalpha(s[原创 2013-08-15 09:33:55 · 768 阅读 · 0 评论 -
校招季——编程题目(1-2)
2013/08/12,秋季校招准备工作第一天。 1. 与K有关的数 题目: 输入正整数K与N,求出不大于N的与K有关的数的数目。与K有关的意思是:是K的非0整数倍或数字中包含K(如123中包含12和23等)。 解答: 先判断i能否被K整除,如果不能的话,用mask依次取i中长度为len(K)的一段与K对比。 1 2 3 4 5 6 7原创 2013-08-12 21:01:07 · 991 阅读 · 0 评论 -
校招季——编程题目(12-13)
12. 快速求幂(题目047) 题目: 给定两个整数base和exp(非负整数),求base的exp次幂,要求O(lgN)的时间复杂度。 解答: int FastPow(int base, int exp) { if (exp == 0) return 1; if (exp == 1) return base; in原创 2013-08-29 21:40:47 · 698 阅读 · 0 评论 -
校招季——编程题目(8-9)
2013/08/18,后天就回本部准备校招了,争取今天能将题目总结到70题。 8. 最大子序列和 题目: 输入一个长度为n的序列,其中元素有正有负,求其中序列和最大的连续子序列,如果不存在序列和为正数的连续子序列,返回0。 解答: 方法一: 思路:遍历所有子序列,求出序列和,找出其中和最大的那个。时间复杂度O(n3),空间复杂度O(1)。 方法二: 思路:先求出长原创 2013-08-18 21:10:47 · 753 阅读 · 0 评论 -
校招季——编程题目(10-11)
10. 最大子序列和 题目: 输入一个长度为n的序列,其中元素有正有负,求其中序列和最大的连续子序列,如果不存在序列和为正数的连续子序列,返回0。 解答: 方法一: 思路:遍历所有子序列,求出序列和,找出其中和最大的那个。时间复杂度O(n3),空间复杂度O(1)。 方法二: 思路:先求出长度为n的辅助数组sum,其中sum[i]是data[0,i]的和,原创 2013-08-28 15:33:45 · 783 阅读 · 0 评论 -
校招季——编程题目(73) 回文数
73. 回文数 题目: 1. 测试一个数是不是回文数。 2. 逆转一个数的二进制表示。 解答: 对于问题1,方法1: 用itoa将这个数转换成字符串,再测试这个字符串是不是回文字符串。 方法2: 用两个mask从两端提取数字再比较: int mask1 = /* 和x同位数,略 */, mask2 = 10; for ( ; mask1原创 2013-08-31 10:52:52 · 898 阅读 · 0 评论 -
校招季——编程题目(15、16) 约瑟夫问题 最大子矩阵和
15. 约瑟夫问题(题目042) 题目: n个人围成一圈,从第一个开始报数,第m个将被杀掉,最后剩下一个,其余人都将被杀掉。求最后剩下的人的序号。例如n=6,m=5,被杀掉的人的序号为5,4,6,2,3。最后剩下1号。 解答: 思路: 如果要打印整个过程,有3种方法: 1. 链表法:产生长度为n的循环链表,然后每遍历m次输出当前序号,并删除节点,直到链表中只有原创 2013-09-07 11:10:57 · 1355 阅读 · 0 评论 -
校招季——编程题目(14) 逆序数
14. 逆序数(题目043) 题目: 计算一个全由大写字母组成的字符串的逆序数。 解答: 求逆序数和排序的思路是类似的,稳定的排序算法都可以用来计算逆序数。 方法1: 最直接的方法,采用冒泡排序和插入排序的思路,一共需要遍历(n-1)*(n-2)次,比较慢。 方法2: 利用归并排序的思想加速这个过程。一个序列的逆序数等于它的两个递归子过程产生的逆序数与合并过程产生的逆序数之和。在合原创 2013-09-03 20:28:08 · 1250 阅读 · 0 评论