最小调整代价-LintCode
来源:互联网 发布:新手淘宝客能赚到钱吗 编辑:程序博客网 时间:2024/06/07 01:44
给一个整数数组,调整每个数的大小,使得相邻的两个数的差小于一个给定的整数target,调整每个数的代价为调整前后的差的绝对值,求调整代价之和最小是多少。
样例:
对于数组[1, 4, 2, 3]和target=1,最小的调整方案是调整为[2, 3, 2, 3],调整代价之和是2。返回2。
思想:动态规划
#ifndef C91_H#define C91_H#include<iostream>#include<vector>#include<algorithm>using namespace std;class Solution {public: /** * @param A: An integer array. * @param target: An integer. */ int MinAdjustmentCost(vector<int> A, int target) { // write your code here int len = A.size(); if (len < 2) return 0; vector<vector<int>> cur(len, vector<int>(101, 0)); for (int i = 0; i < 101; ++i) cur[0][i] = abs(A[0] - i); for (int i = 1; i < len; ++i) { for (int j = 0; j < 101; ++j) { cur[i][j] = INT_MAX; int diff = abs(A[i] - j); int upper = min(j + target, 100); int lower = max(j - target, 0); for (int k = lower; k <= upper; ++k) cur[i][j] = min(cur[i][j], cur[i - 1][k] + diff); } } int cost = INT_MAX; for (int i = 0; i < 101; ++i) cost = min(cost, cur[len - 1][i]); return cost; }};#endif
阅读全文
0 0
- LintCode-最小调整代价
- LintCode 最小调整代价
- 最小调整代价-LintCode
- lintcode--最小调整代价
- lintcode minimum-adjustment-cost 最小调整代价
- LintCode(M)最小调整代价(待续)
- 最小调整代价
- 最小调整代价
- 最小调整代价
- 动态规划--最小调整代价
- 91.Minimum Adjustment Cost-最小调整代价(中等题)
- 最小代价
- 最小代价;;;;
- 最小代价
- 最小代价
- 算法爱好者——算法题:最小调整代价 ? 待解决
- 最小代价子母树
- 最小代价树
- 多态
- codevs 1766 装果子 二分 解题报告
- centos7 安装 opencv3.0
- 阿里内推编程测试题
- linux系统编程之信号(四):信号的捕捉与sigaction函数
- 最小调整代价-LintCode
- 【SVN】——svn协议和http协议
- Android 性能优化——UI 优化指南
- 剑指offer:和为S的两个数字
- 排序
- 深入理解Java注解(Annotation)--注解处理器
- matlab的Reshape函数实现
- POJ 2886 Who Gets the Most Candies? 线段树单点更新
- D