首页 > 编程语言 > 详细

1. 两数之和(寻找给定数组中两数之和为目标值的元素)

时间:2020-09-29 00:13:40      阅读:37      评论:0      收藏:0      [点我收藏+]

Q

给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。

你可以假设每种输出只会对应一个答案。但是,数组中同一个元素不能使用两边。

示例:

给定nums = [2, 7, 11, 15], target = 9

因为nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0,1]

A

C语言

#include <stdio.h>

int *findTwoNums(int *nums, int size, int target) {
    int i, j;
    int *ret = NULL;
    for(i=0;i<size;i++) {
        for(j=i+1;j<size;j++){
            if(target == nums[i] + nums[j]) {
                ret =(int *)malloc(sizeof(int) * 2);
                ret[0] = i;
                ret[1] = j;
                return ret;
            }
        }
    }
    return ret;
}

int main(void) {
    int a[] = {2, 7, 11,15};
    int b = 4;
    int c = 9;
    
    int *out = findTwoNums(a, b, c);

    printf("1=%d,2=%d\n", out[0], out[1]);
    return 0;
}

golang

package main

import (
    "fmt"
)

func main() {
    var ff = [] int {1, 3, 5, 7, 9}
    target := 16 
    out := findTwoNums(ff, target)
    fmt.Printf("it is %d and %d \n", out[0], out[1])
}

func findTwoNums(nums [] int, target int) [2] int {
    for i := 0; i < len(nums); i++ {
        for j := i+1; j < len(nums); j++ {
            if nums[i] + nums[j] == target {
                return [2] int {i, j}
            }
        }
        
    }
    return [2] int {}
}

1. 两数之和(寻找给定数组中两数之和为目标值的元素)

原文:https://www.cnblogs.com/dar1inge/p/13747522.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!