本文主要是介绍最大划水收益,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解法:
双指针、贪心
#include <iostream>
#include <vector>
using namespace std;
#define endl '\n'int main() {ios::sync_with_stdio(false);cin.tie(0); cout.tie(0);int n, k;cin >> n >> k;vector<int> vec(n, 0);for (int i = 0; i < n; i++) cin >> vec[i];int l = 0, r = n - 1, min = 0;while (l <= r) {if (l == r) {min++;break;}if (vec[r] == k) {min++,r--;}else if (vec[r] + vec[l] > k) {min++,r--;}else if (vec[r] + vec[l] <= k) {min++,r--, l++;}}cout << min << endl;return 0;
}
这篇关于最大划水收益的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!