第一天写代码,记录一下刷leetcode,学习进步每一天。
1、两数之和:
给定一个整数数组 nums 和 一个目标值 target ,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两次。
python:
class Solution:
def twoSum(self,nums,target):
a={}
for i,v in enumerate(nums):
if v in a:
return a[v],i
a[target-v]=i
c++:
class Solution{
public:
vector<int> twoSum(vector<int>& nums,int target){
unordered_map<int,int> m;
for(int i=0;i<nums.size();i++)
m[nums[i]]=i;
for(int i=0;i<nums.size();i++)
{
if(m.find(target-nums[i])!=m.end() && m[target-nums[i]]!=i)
return {i,m[target-nums[i]]};
}
return {};
}
;
主要思路就是使用字典记录当前值(当前差值)的下标。