1、第一题,输入n和k,第二行输入n个数字,要求差不大于k的两个数字相乘,求能加起来的最大值。
第一题不是int为什么只有40%
#include<bits/stdc++.h> using namespace std; int main() { int n,k; cin >> n >> k; vector<int> nums(n); for(int i=0; i<n; i++) { cin >> nums[i]; } int i = n-2; int score = 0; sort(nums.begin(),nums.end()); while(i>=0) { if(abs(nums[i]-nums[i+1])<=k) { score += nums[i]*nums[i+1]; if(i-2>=0) { i=i-2; }else{ break; } }else{ i--; } } cout << score << endl; return 0; } /* 输入 6 2 1 1 1 1 4 5 输出 22 */
2、第二题,动态规划 100%
3、一个数组,求里面所有子数组的和 20% 时间复杂度没时间优化了