leetcode 410 动态规划版本,dp[i][j]表示到i为止,分割为j组的最小最大和。 class Solution { public:     int splitArray(vector<int>& nums, int m) {         int n = nums.size();         vector<vector<long>> dp(n+1, vector<long>(m+1, ~(1<<31)));         vector<long> sums(n+1, 0);         // nums.push_front(0);         for(int i=1; i<=n; ++i) sums[i] = sums[i-1] + nums[i-1];         for(int i=0; i<=n; ++i) dp[i][1] = sums[i]; // 到i为止,只分一组。         for(int i=1; i<=n; ++i){             for(int j=1; j<=m; ++j){                 for(int k=0; k<=i; ++k){ // 枚举到i为止所有切割点。                     dp[i][j] = min(dp[i][j], max(dp[k][j-1], sums[i]-sums[k]));                 }             }         }         return dp[n][m];     } };
点赞 1

相关推荐

牛至超人:您好,京东物流岗了解一下吗?负责精加工食品的端到端传输
点赞 评论 收藏
分享
小浪_Coding:1. 个人技能排版太乱, 写的技术栈太浅了, 跟测试,自动化相关的太少; 2. 项目开发类的太简单没有亮点, 算法类的项目建议只放一个,最好有自动化,CI/CD, pipline的项目, 需要更换; 3.整体排版需要优化, SOOB打招呼都需要注意等.
我的简历长这样
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务