题解 | #乳牛各类产奶统计#
乳牛各类产奶统计
https://www.nowcoder.com/practice/4e4c1e24208e44a8a9b8c7dd5f829017
题目考察的知识点:二分
题目解答方法的文字分析:v1数组存放左边的乘积,v2数组存放右边的乘积,一个数的左右两边乘积等于数组 milk_amount 中除了 milk_amount[i] 之外其他元素的乘积。
本题解析所用的编程语言:c++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param milk_amount int整型vector
* @return int整型vector
*/
vector<int> product_except_self(vector<int>& milk_amount) {
// write code here
int n = milk_amount.size();
vector<int> v(n), v1(n), v2(n);
int x = 1, y = 1;
for (int i = 0, j = milk_amount.size() - 1; i < milk_amount.size(); ++i, --j)
{
x *= milk_amount[i];
y *= milk_amount[j];
v1[i] = x;
v2[j] = y;
}
v[0] = v2[1];
v[n - 1] = v1[n - 2];
for (int i = 1; i < milk_amount.size() - 1; ++i)
v[i] = v1[i - 1] * v2[i + 1];
return v;
}
};
