学渣带你刷Leetcode0001.两数之和

Posted 爱学习的小鹏友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学渣带你刷Leetcode0001.两数之和相关的知识,希望对你有一定的参考价值。

#include <stdio.h>#include <stdlib.h> #include <time.h> //利用时间产生系统随机数 int *twoSum(int* nums, int numsSize, int target, int* returnSize){ int *a = (int *)malloc(sizeof(int) * (*returnSize));//定义一个数组 int i, j; for (i = 0; i < numsSize - 1; i++) { for (j = i + 1; j < numsSize; j++) { if (nums[i] + nums[j] == target) { a[0] = i; a[1] = j; printf("%d+%d满足条件\n",nums[i],nums[j]); *returnSize = 2; return a; } } } *returnSize = 0; return a;} int main(){ int target; int numsSize; int returnSize=2;  printf("请输入数组数量及目标值,例(4 9):"); scanf("%d %d",&numsSize,&target); printf("使用随机函数生成%d个元素的数组吗,Y/N?\n",numsSize); getchar(); char c; c=getchar();   int i; int nums[numsSize]; if(c=='n'|| c=='N') { printf("请输入数组,例(2 7 56 4):"); //输入数组准备  for(i=0; i<numsSize; i++) { scanf("%d",&nums[i]); } } else if(c=='y'|| c=='Y') { for(i=0; i<numsSize; i++) { nums[i]=rand()%100; } }   //调用方法 int *p=twoSum(nums,numsSize,target,&returnSize);  //输出 if(returnSize==2) { printf("索引号为:\n"); for(i=0; i<returnSize; i++) { printf("%d ",*(p+i)); } } else { printf("没有满足的\n"); for(i=0; i<numsSize; i++) { printf("%d ",nums[i]); } }   return 0; }  

要不是为了原创,我真不想粘贴题目描述

1.两数之和

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

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

示例:

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

因为 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]




以上是关于学渣带你刷Leetcode0001.两数之和的主要内容,如果未能解决你的问题,请参考以下文章

leetcode-0001 两数之和

编程艺术0001_两数之和_解法

手把手带你刷LeetCode——19.水仙花数(作业)

leetcode-两数之和

0001 两数之和

Leetcode 1. 两数之和(带图)