剑指Offer39 数组中寻找和为sum的两个数字
2016-09-04 17:11
204 查看
/************************************************************************* > File Name: 39_TwoNumbersWithSum.cpp > Author: Juntaran > Mail: JuntaranMail@gmail.com > Created Time: 2016年09月03日 星期六 11时14分49秒 ************************************************************************/ #include <stdio.h> bool FindNumberWithSum(int* nums, int length, int sum, int* num1, int* num2) { bool ret = false; if (length<1 || num1==NULL || num2==NULL) return ret; int left = 0; int right = length - 1; while (right > left) { int current = nums[left] + nums[right]; if (current == sum) { *num1 = nums[left]; *num2 = nums[right]; ret = true; return ret; } else if (current > sum) right --; else left ++; } return ret; } int main() { int nums[] = {1,2,4,7,11,15}; int length = 6; int sum = 15; int num1, num2; if (FindNumberWithSum(nums, length, sum, &num1, &num2)) printf("%d, %d\n", num1, num2); else printf("Not Find\n"); return 0; }
相关文章推荐
- 剑指Offer38 数组所有数字出现两次,只有两个出现了一次,找出这两个数字
- 【剑指offer】面试题56(1):数组中只出现一次的两个数字
- 【剑指offer】【41】找出升序数组中和为给定值的两个数字
- 剑指offer——42.和为sum的两个数字
- 剑指offer39——数字在数组中出现的次数
- 剑指Offer-39:数组中出现次数超过一半的数字
- 【剑指offer】数组中找两个不重复数字
- 剑指Offer —— 找出数组中两个只出现了一次的数字
- 剑指offer 面试题40—数组中两个只出现一次的数字
- 【剑指offer24】输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 剑指offer(39)-和为S的两个数字
- 【剑指offer】面试题39:数组中出现次数超过一半的数字
- 【剑指offer】面试题 39:数组中出现次数超过一半的数字
- 剑指offer-面试题40 : 数组中只出现一次的两个数字
- 剑指offer 01-06解答思路以及代码(顺序数组找特定数字,替换空格字符,链表反转输出,重建二叉树,两个栈实现队列效果,旋转数组最小元素)
- 剑指offer39: 数组中出现次数超过一半的数字
- 【剑指Offer-知识迁移能力】有序数组中和为S的两个数字
- 【剑指offer】面试题39 数组中出现次数超过一半的数字
- 剑指Offer面试题39二叉树的深度(以及判断平衡二叉树),面试题40数组中只出现一次的数字
- 剑指Offer: 数字在排序数组中出现的次数、和为S的两个数字、数组中只出现一次的数字