数组
南宫小仙僧
这个作者很懒,什么都没留下…
展开
-
将字符串中的空格替换,时间复杂度为0(n)解法
题目:实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出”We%20are%20happy.”题目很简单,直接上代码#include<iostream>using namespace std;void Replace(char string[],int length){ if(string==NULL || length<0) {原创 2017-05-22 15:32:47 · 869 阅读 · 0 评论 -
微软编程题之找出数组中唯一出现两次的数
假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用这种方式的算法吗?方法一:使用辅助存储方式使用hash存储方式,以1到1000作为hash表的索引,遍历原数组,统计原创 2017-05-17 20:31:15 · 671 阅读 · 0 评论 -
旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。算法思想:我们用两个指针分别指向数组的第一个元素和最后一个元素。按照题目中旋转规则,第一个元素应该是大于或者等于最后一个元素的(这其实不完全对,还有特例,后面再加以讨论)。接着我们可以找到数原创 2017-05-31 23:24:17 · 507 阅读 · 0 评论 -
二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。例如下面的二维数组就是每行,每列都递增排序。如果在这个数组中查找数字7,则返回true;如果查找数字5,由于数组不含有该数字,则返回false。1 2 8 9 2 4 9 12原创 2017-05-22 10:55:18 · 358 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
算法思想很简单: 我们定义两个指针,第一个指针初始化时指向数组的第一个数字,它只向后移动。第二个指针初始化时指向数组的最后一个数字,它只向前移动。在两个指针相遇之前,第一个指针总是位于第二个指针的前面。如果第一个指针指向的数字是偶数,第二个指针指向的数字是奇数,则交换这两个数字#include<iostream>using namespace std;void ReorderOddEven(i原创 2017-06-12 11:08:07 · 296 阅读 · 0 评论 -
数组中的组合问题
题目描述:给出n(0输入:第一行输入n,m第二行输入n个数,范围为[0,10^9]随后m行每行输入一个p输出:输出存在满足要求的子集的查询个数样例输入5 24 2 2 4 48 9样例输出1算法思想很简单,直接上代码#include #include #include #include #include #include #include #include us原创 2017-09-14 16:06:58 · 474 阅读 · 0 评论