您好,欢迎来到尔游网。
搜索
您的当前位置:首页刷题time

刷题time

来源:尔游网

第一次使用LeetCode——初级练习第一题

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

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

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

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
我是计算机小白,所以用的是C实现的,函数代码块如下。测试代码(加主函数)代码在文末。

/**
 * 暴力法
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target,int *returnSize){
    int i,j;
    //动态构造一个数组,此数组用于存放那俩数的下标,因为就存两个,所以用sizeof(int)*2
    int * b = (int *)malloc(sizeof(int)*2);
    i = 0;
    //初始化数组b
    while(i<2){
        b[i] = -1;
        i++;
    }
    for(i = 0;i<numsSize-1;i++){
        for(j = i+1;j<numsSize;j++){
            if(nums[i]+nums[j] == target){
                b[0] = i;
                b[1] = j;
                *returnSize = 2;
                break;
            }
        }
    }
    if(b[0] == -1){
        return NULL;
    }
    else
        return b;
}

然后是我的测试代码及结果截图。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
/**
 * 暴力法
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* twoSum(int* nums, int numsSize, int target, int *returnSize) {
	int i, j;
	//动态构造一个数组,此数组用于存放那俩数的下标,因为就存两个,所以用sizeof(int)*2
	int * b = (int *)malloc(sizeof(int) * 2);
	i = 0;
	//初始化数组b
	while (i < 2) {
		b[i] = -1;
		i++;
	}
	for (i = 0; i < numsSize - 1; i++) {
		for (j = i + 1; j < numsSize; j++) {
			if (nums[i] + nums[j] == target) {
				b[0] = i;
				b[1] = j;
				*returnSize = 2;
				break;
			}
		}
	}
	if (b[0] == -1) {
		return NULL;
	}
	else
		return b;
}
int main()
{
	int a[] = { 2,7,11,15 };
	int * b = NULL;
	int i;
	int result;
	printf("请输入目标值\n");
	scanf_s("%d", &result);
	b = twoSum(a, 4, result, b);
	if (b != NULL) {
		for (i = 0; i < 2; i++) {
			printf("%d\n", b[i]);
		}
	}
	else
	{
		printf("找不到两数之和为%d的两个数", result);
	}
	system("pause");
	return 0;
}

结果如下图:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- axer.cn 版权所有 湘ICP备2023022495号-12

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务