每周一道算法題(一)

最近加了個群,大家一起學習學習提高,然后剛好今天是一個算法題,然而不支持OC,只好把忘完的C再撿起來,寫這個難度為“easy”的算法題,因為iOS完全兼容C,所以我的題目還是寫iOS啦啦啦~~

題目是這樣的:

給一個數組,每一位是一個整數.再給一個整數作為“目標”.數組中會有兩個數的和,恰好為這個“目標”.找到這兩個數,并返回它們的下標.(可以假定給出的輸入只有一個解,而且一個數不能用兩次)

由于題目上說了有一個解,我就不做錯誤處理了,直接上我的答案

#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("第一個坐標是:%d\n第二個坐標是:%d",searchIndexOfArr(numArr,num)[0],searchIndexOfArr(numArr,num)[1]);
    return 0;
}

答案不是最優的,也請各位不吝賜教,共同學習。。。

版權聲明:本文為 Crazy Steven 原創出品,歡迎轉載,轉載時請注明出處!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,820評論 25 708
  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,180評論 4 61
  • 我們應該司空見慣的是,現今的娛樂圈是一個快產快銷的過度消費時代,再嘆為觀止的新聞似乎也抵不過轉瞬即逝。但近來的兩個...
    三文愈閱讀 1,505評論 8 5
  • 七年前,空氣中還沒有那么多的霧霾,夏天也沒有像今年這樣遲到過。 那個時候我也沒有到23歲。 拉著我的常年溫熱的手,...
    樂樂王閱讀 493評論 12 9
  • 以我簡單的閱歷,談人生,像瞎子摸象。但孩子,我愿以我的感受,告訴你人生。 人生,像馬拉松,贏在起點,并不意味能贏到...
    北友閱讀 533評論 0 2