首页 > 代码库 > 剑指Offer39 数组中寻找和为sum的两个数字

剑指Offer39 数组中寻找和为sum的两个数字

 1 /************************************************************************* 2     > File Name: 39_TwoNumbersWithSum.cpp 3     > Author: Juntaran 4     > Mail: JuntaranMail@gmail.com 5     > Created Time: 2016年09月03日 星期六 11时14分49秒 6  ************************************************************************/ 7  8 #include <stdio.h> 9 10 bool FindNumberWithSum(int* nums, int length, int sum, int* num1, int* num2)11 {12     bool ret = false;13     if (length<1 || num1==NULL || num2==NULL)14         return ret;15     16     int left  = 0;17     int right = length - 1;18     19     while (right > left)20     {21         int current = nums[left] + nums[right];22         if (current == sum)23         {24             *num1 = nums[left];25             *num2 = nums[right];26             ret = true;27             return ret;28         }29         else if (current > sum)30             right --;31         else32             left ++;33     }34     return ret;35 }36 37 int main()38 {39     int nums[] = {1,2,4,7,11,15};40     int length = 6;41     int sum = 15;42     int num1, num2;43     44     if (FindNumberWithSum(nums, length, sum, &num1, &num2))45         printf("%d, %d\n", num1, num2);46     else47         printf("Not Find\n");48     return 0;49 }

 

剑指Offer39 数组中寻找和为sum的两个数字