最近加了個(gè)群,大家一起學(xué)習(xí)學(xué)習(xí)提高,然后剛好今天是一個(gè)算法題,然而不支持OC,只好把忘完的C再撿起來(lái),寫(xiě)這個(gè)難度為“easy”的算法題,因?yàn)閕OS完全兼容C,所以我的題目還是寫(xiě)iOS啦啦啦~~
題目是這樣的:
給一個(gè)數(shù)組,每一位是一個(gè)整數(shù).再給一個(gè)整數(shù)作為“目標(biāo)”.數(shù)組中會(huì)有兩個(gè)數(shù)的和,恰好為這個(gè)“目標(biāo)”.找到這兩個(gè)數(shù),并返回它們的下標(biāo).(可以假定給出的輸入只有一個(gè)解,而且一個(gè)數(shù)不能用兩次)
由于題目上說(shuō)了有一個(gè)解,我就不做錯(cuò)誤處理了,直接上我的答案
#include <stdio.h>
#include <stdlib.h>
#define N 10
int* searchIndexOfArr(int array[N],int num) {
int *result = (int*)malloc(2 * sizeof(int));
result[0] = result[1] = N;
for (int x = 0; x < N - 1; x++) {
for (int y = x + 1; y < N; y++) {
if (array[x] + array[y] == num) {
result[0] = x;
result[1] = y;
break;
}
}
if (result[0]<N) {
break;
}
}
return result;
}
int main(int argc, const char * argv[]) {
int numArr[N];
for (int i = 0; i < N; i++) {
numArr[i] = arc4random()%100 + 1;
printf("arr[%d]=%d\n", i,numArr[i]);
}
int num = (numArr[N/2] + numArr [N-1]);
printf("num = %d\n",num);
printf("第一個(gè)坐標(biāo)是:%d\n第二個(gè)坐標(biāo)是:%d",searchIndexOfArr(numArr,num)[0],searchIndexOfArr(numArr,num)[1]);
return 0;
}
答案不是最優(yōu)的,也請(qǐng)各位不吝賜教,共同學(xué)習(xí)。。。