
数组
bxyill
这个作者很懒,什么都没留下…
展开
-
【面试题】一个数组a[n-1]缺失了1到n之间的哪个数?
#include #define N 10int main(){ int a[N-1]={3,9,4,5,2,6,1,8,10}, missing=0; for(int i=1; i<=N-1; i++) { missing+=i-a[i-1]; } missing+=N; printf("Missing Number: %d\n", missi转载 2012-10-01 10:16:20 · 3124 阅读 · 0 评论 -
【每日一题】2012.5.26:输入两个数组中相同的元素
第一题:两个数组,大小自定,无序#include #include using namespace std;const int N = 20;const int M = 10;void fun(int a[],int b[]){ set num; set result; for(int i=0; i != M; ++i) { num.insert(a[i]); }原创 2012-05-27 09:49:40 · 1261 阅读 · 0 评论 -
【100题】在排序数组中查找和为给定值的两个数
//在排序数组中查找和为给定值的两个数#include using namespace std;bool FindNum( int data[], unsigned int length, int sum, int &n1, int &n2 ){ bool found = false; if(length < 1) { return found; } int转载 2012-07-21 09:51:46 · 1317 阅读 · 0 评论 -
【面试题】一串数字,经转换后使所有奇数在所有偶数的前面,并且奇数偶数的相对顺序不变。
首先,如果不考虑相对顺序的话。。。。 可以使用两个指针 begin 和 end ,#include #include using namespace std;void lmf(int A[], int n){ int end, begin, temp; end = n - 1; begin = 0; while (end > begin)转载 2013-03-06 22:06:10 · 2888 阅读 · 0 评论 -
【面试题】数组中有两个元素出现了奇数次,其他元素出现了偶数次。找出这两个元素
数组中有两个元素出现了奇数次,其他元素出现了偶数次。找出这两个元素。把原数组分为两个子数组。在每个子数组中,包含一个只出现一次的数字,而其他数字都出现两次。如果能够这样拆分原数组,按照前面的办法就是分别求出这两个只出现一次的数字了。我们还是从头到尾依次异或数组中的每一个数字,那么最终得到的结果就是两个只出现一次的数字的异或结果。因为其他数字都出现了两次,在异或中全部抵消掉了。由于这两个数字转载 2013-03-09 09:14:28 · 6585 阅读 · 0 评论 -
【面试题】数对之差的最大值
转自:http://zhedahht.blog.163.com/blog/static/2541117420116135376632/ 问题描述:在数组中,数字减去它右边的数字得到一个数对之差。求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11,是16减去5的结果。 解法一:分治法我们可以想象,数对之差的最大转载 2013-03-10 20:56:05 · 1508 阅读 · 0 评论 -
【面试题】k序数组的排序问题
在网上看到的一道面试题,觉得思路不错,收藏一下。首先什么是k序数组呢?具备这样特征的数组:其中的第i个元素在排序之后的位置位于[i-k, i+k]之间即称之为k序的题目要求:试写算法把一个k序数组排序. 解法:根据k序数组的特性,显然有以下几个子序列:X[0], X[k+1], X[2(k+1)], X[3(k+1)]......X[1],X[k+1+转载 2013-02-24 10:08:13 · 1562 阅读 · 0 评论 -
【100题】最大子数组和
#include using namespace std;bool FindGreatestSumOfArray(int *pData,unsigned int nLength,int &nGreatestSum){ if(pData == NULL || nLength <= 0) { return false; } int nCurSum = nGreatestSum =转载 2012-07-15 23:02:36 · 816 阅读 · 0 评论 -
互联网面试题:一个数组中找出三个出现奇数次的数字中的一个
2、异形数(25分)在一个长度为n的整形数组a里,除了三个数字只出现一次外,其他的数字都出现了2次。请写程序输出任意一个只出现一次的数字,程序时间和空间复杂度越小越好。例如: a ={1,3,7,9,5,9,4,3,6,1,7},输出4或5或6 //异形数问题#include using namespace std;int lowbit(int x) {转载 2013-05-24 10:09:56 · 5171 阅读 · 0 评论