第二题int maxSumAfterKOperations(vector<int>& nums, int k) { int n = nums.size(); // dp[i][j]表示前i个元素做j次操作后的最大和 vector< vector<int> > dp(n + 1, vector<int>(k + 1, 0)); for (int i = 1; i <= n; i++) { for (int j = 0; j <= k; j++) { int max_sum = INT_MIN; int current_sum = 0; for (int x = 0; x <= min(j, i); x++) { if (x > 0) { current_sum = max(current_sum + nums[i - x], nums[i - x]); } max_sum = max(max_sum, current_sum + dp[i - x][j - x]); } dp[i][j] = max_sum; } } return dp[n][k]; }
点赞 评论

相关推荐

北京亚信 菜菜 500-999
点赞 评论 收藏
分享
牛客网
牛客企业服务