1. Two Sum

Solution Code

C#

publicclassSolution{publicint[]TwoSum(int[]nums,inttarget){intn=nums.Length;for(inti=0;i<n;i++){for(intj=i+1;j<n;j++){if(nums[i]+nums[j]==target)returnnewint[]{i,j};}}returnnewint[]{-1,-1};}}

C++

classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){intn=nums.size();vector<int>ans;for(inti=0;i<n;i++){for(intj=i+1;j<n;j++){if(nums[i]+nums[j]==target){ans.push_back(i);ans.push_back(j);returnans;}}}returnans;}};
classSolution{public:vector<int>twoSum(vector<int>&nums,inttarget){vector<pair<int,int>>valueIndexPair;vector<int>answer;intindex1,index2,sum;for(intk=0;k<nums.size();k++){valueIndexPair.push_back(pair<int,int>(nums[k],k));}sort(valueIndexPair.begin(),valueIndexPair.end());index1=0;index2=valueIndexPair.size()-1;while(index1<index2){sum=valueIndexPair[index1].first+valueIndexPair[index2].first;if(sum==target)break;elseif(sum<target)index1++;elseindex2--;}answer.push_back(valueIndexPair[index1].second);answer.push_back(valueIndexPair[index2].second);returnanswer;}};

Java

classSolution{publicint[]twoSum(int[]nums,inttarget){intn=nums.length;for(inti=0;i<n;i++){for(intj=i+1;j<n;j++){if(nums[i]+nums[j]==target)returnnewint[]{i,j};}}returnnewint[]{-1,-1};}}

Python

classSolution:deftwoSum(self,nums:List[int],target:int)->List[int]:num_idx_map={}foridx,numinenumerate(nums):difference=target-numifdifferenceinnum_idx_map:return[num_idx_map[difference],idx]else:num_idx_map[num]=idx
classSolution:deftwoSum(self,nums:List[int],target:int)->List[int]:# creating a list with their respective indicesnum_with_idx=[(num,idx)foridx,numinenumerate(nums)]# sorting list of tuple based on their first valuenum_with_idx=sorted(num_with_idx,key=lambdax:x[0])# Two-Pointer approachleft_idx=0right_idx=len(nums)-1whileleft_idx<right_idx:sum_result=num_with_idx[left_idx][0]+num_with_idx[right_idx][0]ifsum_result>target:right_idx-=1elifsum_result<target:left_idx+=1elifsum_result==target:return[num_with_idx[left_idx][1],num_with_idx[right_idx][1]]

© 2023. All rights reserved.