两数之和,leetcode第一题,这里先写两种思路,哈希的之后补上。
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;
}
}
}
}
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--;
}
}
}
原文:https://www.cnblogs.com/ziyuemeng/p/12405758.html