最新消息:

Scratch编程案例(9)— 两数之和

C++ 少儿编程 4939浏览 0评论

友情提示:视频教程观看时请手动设置清晰度。

有一段时间没有和大家一起交流实战编程了,今天学习一下前些天布置给同学们的一道编程练习题:两数之和

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

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

示例:

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

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

所以返回 [0, 1]

 

C语言:

int* twoSum(int* nums, int numsSize, int target)

{

static int a[2]={0};

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;

return a;

}

}

}

return 0;

}

C++:

class Solution {

public:

   vector<int> twoSum(vector<int>& nums, int target) {

       unordered_map<int,int> record;

       for(int i = 0 ; i < nums.size() ; i ++){

     

           int complement = target – nums[i];

           if(record.find(complement) != record.end()){

               int res[] = {i, record[complement]};

               return vector<int>(res, res + 2);

           }

           record[nums[i]] = i;

       }

   }

};

 

Scratch

实战学习编程(9)--- 两数之和

 

转自公众号:
南昌青少年编程

您必须 登录 才能发表评论!