剑指Offer——查找递增数组中和为S的两个数
来源:互联网 发布:ch341a编程器软件1.29 编辑:程序博客网 时间:2024/05/22 02:07
主要思路为:
定义两个指针一个指向头一个指向尾,在while循环里求头尾和,如果等于S则输出,大于S头指针--,小于S尾指针++。
程序在vs2015中调试运行无误
#include "stdafx.h"#include<iostream>using namespace std;bool FindTheTwoNum(int data[], int len, int *num1, int *num2 ,int sum){ bool found = false; if ((NULL == data) || (len < 2) || (NULL == num1) ||(NULL == num2)) return found; int *start = data; int *end = &data[len - 1]; while (start < end) { long long curSum = *start + *end; if (curSum == sum) { *num1 = *start; *num2 = *end; found = true; break; } else { if (curSum>sum) end --; else start ++; } } return found;}int main(){ const int length = 10; int data[length] = {0,1,2,3,4,5,6,7,8,9}; int sum = 7; int a = 0; int b = 0; if (FindTheTwoNum(data, length, &a, &b, sum)) printf("a is %d, b is %d, a+b = %d", a, b, sum); else printf("数组中不存在和为%d的两个数",sum); while (1); return 0;}
0 0
- 剑指Offer——查找递增数组中和为S的两个数
- 《剑指offer》:[41]数组中和为S的两个数
- 剑指offer-数组中和为S的两个数
- 剑指offer 面试题41 递增数组中和为s的两个数字 | 和为s的连续整数序列
- 输出递增数组中和为sum的两个数
- 查找数组中和为s的两个数字
- 查找数组中和为某给定值的两个数
- 查找数组中和为特定值的两个数
- 求递增序列中和为S的乘积最小的两个数
- 找出集合S中和为X的两个数
- 剑指offer----和为S的两个数----java实现
- 剑指offer---和为S的两个数
- 【剑指offer】【41】找出升序数组中和为给定值的两个数字
- 找出数组中和为给定值的两个数
- 1352 找出数组中和为k的两个数
- 输入一个递增排序的数组和一个数字s查找两个数,使得它们的和正好是s
- 《剑指offer》——和为S的两个数字
- 剑指offer——和为S的两个数字
- 堆排序--Java实现
- 窗口风格 :"ModifyStyle函数的用法":
- Tricks(二十六) —— 妙用关键字参数(keyword arguments)
- brew update
- WebService实例:手机号查询
- 剑指Offer——查找递增数组中和为S的两个数
- 用Redis实现Session功能
- zz:Android测试提升效率批处理脚本
- 逻辑编程
- zz Android APP Monkey工具介绍(一)
- 苹果系统怎么修改权限与Mac与Win7 文件共享设置
- View的事件体系
- Git客户端与Git服务器通讯的工作流
- C++ vector用法