Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 在棒料切割问题中查找位置[Microsoft访谈]_Algorithm_Dynamic Programming - Fatal编程技术网

Algorithm 在棒料切割问题中查找位置[Microsoft访谈]

Algorithm 在棒料切割问题中查找位置[Microsoft访谈],algorithm,dynamic-programming,Algorithm,Dynamic Programming,给定一根长度为n英寸的杆和一系列价格,其中包含所有尺寸小于n的杆的价格。确定为实现最大利润而进行切割的位置 我需要帮助我们如何处理这个问题?一个简单的递归可以解决这个问题: #include <algorithm> #include <climits> int maxPrice(int prices[], int n) { if (n <= 0) return 0; int ans = INT_MIN; for (int i = 0; i

给定一根长度为n英寸的杆和一系列价格,其中包含所有尺寸小于n的杆的价格。确定为实现最大利润而进行切割的位置


我需要帮助我们如何处理这个问题?

一个简单的递归可以解决这个问题:

#include <algorithm>
#include <climits>

int maxPrice(int prices[], int n) { 
   if (n <= 0) return 0; 
   int ans = INT_MIN; 

   for (int i = 0; i < n; i++) 
         ans = std::max(ans, prices[i] + maxPrice(prices, n - i - 1)); 

   return ans; 
} 

int main(){
    //size:         1  2  3  4  5   6   7   8
    int prices[] = {1, 3, 4, 8, 9, 11, 11, 16};
    std::cout<<maxPrice(prices, 8)<<std::endl;
    return 0;
}
#包括
#包括
int maxPrice(int prices[],int n){

如果(n任何示例测试用例?这只是一个例子,用长度代替重量,用价格来表示价值。前两行可能是你在面试中写的最糟糕的东西。请看。问题是关于算法,而不是包含和名称空间。你对算法或我的评论有什么考虑吗?我不知道不认为你在判断答案的要点。这不是你的答案的要点,但是很多人看到这个问题不会更好,会认为<代码>包含< /代码>是正确的方法。已经有足够的坏C++老师教坏的实践。写两个适当的标准库<代码>包含< <代码> >行。真的那么难吗?不,但是如果解释的重点不是包含,而是算法的逻辑,那么一般包含行就更容易了。我很确定询问算法的人不会介意我使用了哪些包含。无论如何,请随意编辑我的答案。