Algorithm 在棒料切割问题中查找位置[Microsoft访谈]
给定一根长度为n英寸的杆和一系列价格,其中包含所有尺寸小于n的杆的价格。确定为实现最大利润而进行切割的位置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
我需要帮助我们如何处理这个问题?一个简单的递归可以解决这个问题:
#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++老师教坏的实践。写两个适当的标准库<代码>包含< <代码> >行。真的那么难吗?不,但是如果解释的重点不是包含,而是算法的逻辑,那么一般包含行就更容易了。我很确定询问算法的人不会介意我使用了哪些包含。无论如何,请随意编辑我的答案。