题目: 题目来源WUSTOJ 源代码: #include<stdio.h> int main() { int n, m, i, a[20]; while (scanf("%d", &n) != EOF) { for (i = 0; i < n; i++) { scanf("%d", &a[i]); // 输入n个整数 } scanf("%d", &m); //输入m for (i = 0; i <
比如a[]={2,4,5,6,7},得出的两组数{2,4,6}和{5,7},abs(sum(a1)-sum(a2))=0: 比如{2,5,6,10},abs(sum(2,10)-sum(5,6))=1,所以得出的两组数分别为{2,10}和{5,6}. vector<int> vct; int last = INT_MAX; int halfOfSum(int* arr, int len) { int sum = 0; for (int i = 0; i < len; ++i) { sum
//时间复杂度O(n),空间复杂度O(n) void findSequence(int* arr, int len) { int* hashtable = new int[RANGE]; memset(hashtable, 0, RANGE); for (int i = 0; i < len; ++i) { hashtable[arr[i]] = 1; } cout << "(a,b): "; for (int i = 0; i < len; ++i) { if
问题: Given an array of integers, every element appears three times except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? Single Number I 升级版,一个数组中其它数出现了
问题: Given an array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? 分析: 数组中的数除了一个只出现了一次之外,其它都出现了两次, 要找出只出