TwoSum
TwoSum
两数之和,leetcode第一题,这里先写两种思路,哈希的之后补上。
未排序(n^2)
void TwoSum(int* arr,int target,int len){
for(int i = 0;i < len;i++){
for(int j = i+1;j < len;j++){
if(arr[i]+arr[j] == target){
cout<<arr[i]<<","<<arr[j]<<endl;
}
}
}
}
已排序(n)
void TwoSumSorted(int* arr,int target,int len){
int left = 0,right =len-1;
while(left < right){
int sum = arr[left] + arr[right];
if(sum >target){
right--;
}
else if(sum < target){
left++;
}
else{
cout<<arr[left]<<","<<arr[right]<<endl;
left++; //别忘了更新
right--;
}
}
}
浙公网安备 33010602011771号