LeetCode1.两数之和:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,返回数组下标。假设每种输入只对应一个答案。但数组中同一个元素不能使用两遍
程序员文章站
2022-07-14 14:26:16
...
c++ 实现LeetCode 1.两数之和(难度:简单)
新的改变
今天第一次尝试写博客,第一次在leetcode上做题,希望能坚持下去:
-
要求:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/two-sum
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。; - 疑问: 没读懂“你可以假设每种输入只会对应一个答案”是什么意思?是只用给出一对可行的下标就可以?;
-
测试数据:假设默认输入数组个数大于两个并且target一定等于其中两个数据之和;
[2,8,3,8] — [2,8,2,0] — target10
C++代码
//
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
vector<int> location;
bool exist = false;//只找出一组,防止重复使用
for(vector<int>::iterator it = nums.begin();it < nums.end()-1;it++)
if(exist)
break;
else
for(vector<int>::iterator it2 = it+1;it2 < nums.end() ;it2++)
if(exist)
break;
else
if((*it)+(*it2) == target)
{
location.push_back(distance(nums.begin(),it));
location.push_back(distance(nums.begin(),it2));
exist = true;
}
return location;
}
};
结果
刚开始超出时间限制,之后改了一下,用时还是很长
执行用时 :1840 ms, 在所有 C++ 提交中击败了5.07%的用户
内存消耗 :7.4 MB, 在所有 C++ 提交中击败了100.00%的用户
看到说用哈希表做的,非科班还在这里插入代码片没学过数据结构和算法,以后有机会改进
上一篇: (Python3)给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
下一篇: PHP-算法[给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标]
推荐阅读
-
LeetCode 1 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
-
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
-
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的 两个 整数。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素
-
两数之和:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。...
-
c语言和Java语言实现,两数之和:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
-
[每日一题]给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。
-
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标,假设每种输入只会对应一个答案
-
python练习题---给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
-
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
-
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。