题解ACM模式| 和为S的两个数字

和为S的两个数字

https://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b

#include<iostream>
#include<vector>
using namespace std;

vector<int> findSum(vector<int> array, int sum) {
	int left = 0, right = array.size() - 1;
	while (left < right) {
		int tmp = array[left] + array[right];
		if (tmp == sum) {
			return { array[left], array[right] };
		}
		else if (tmp < sum) {
			left++;
		}
		else {
			right--;
		}
	}
	return {};
}

int main() {
	vector<int> array, res;
	int num;
	while (cin.peek() != '\n') {
		cin >> num;
		array.push_back(num);  // 直接 push_back 添加元素
	}
	int sum = 0;
	cin >> sum;
	res = findSum(array, sum);
	for (auto r : res) {
		cout << r << endl;
	}
	return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
05-29 09:02
门头沟学院 Java
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-27 18:00
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务