每周一道算法题(一)

最近加了个群,大家一起学习学习提高,然后刚好今天是一个算法题,然而不支持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阅读 174,787评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 我们应该司空见惯的是,现今的娱乐圈是一个快产快销的过度消费时代,再叹为观止的新闻似乎也抵不过转瞬即逝。但近来的两个...
    三文愈阅读 1,560评论 8 5
  • 七年前,空气中还没有那么多的雾霾,夏天也没有像今年这样迟到过。 那个时候我也没有到23岁。 拉着我的常年温热的手,...
    樂樂王阅读 533评论 12 9
  • 以我简单的阅历,谈人生,像瞎子摸象。但孩子,我愿以我的感受,告诉你人生。 人生,像马拉松,赢在起点,并不意味能赢到...
    北友阅读 546评论 0 2