题解 | #牛群重量积#

牛群重量积

https://www.nowcoder.com/practice/d3c6930f140f4b7dbf3a53dd36742193

考察知识点:数组

题目分析:

我们分析每一个结果是由哪些数相乘得到的。

如上图所示,将每个位置的数从上到下乘起来就是最终的结果。如果我们只看右上角,那么第三个数下面的结果1可以给到第四个数,那么第四个数就只需再乘一个数2就能计算这部分的结果。同理将第四个数的结果给到第五个数,那么第五个数只需再乘一个数3就能计算这部分的结果,同理向右进行填值。

然后再看左下角,和上述算法是一样的,可以从右往左遍历一遍,利用前一个数得到的部分结果,就能很快算出当前位置的结果。

所用编程语言:C++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @return int整型vector
     */
    vector<int> productExceptSelf(vector<int>& nums) {
        // write code here
        int size = nums.size();
        vector<int> res(size, 1);
        int val = 1;
        for (int i = 2; i < size; i++) {
            val *= nums[i - 2];
            res[i] = val;
        }
        val = 1;
        for (int i = size - 3; i >= 0; i--) {
            val *= nums[i + 2];
            res[i] *= val;
        }
        return res;
    }
};

全部评论

相关推荐

点赞 评论 收藏
转发
1 收藏 评论
分享
牛客网
牛客企业服务