题解 | #牛群重量积#

牛群重量积

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

知识点

前缀积

思路

设nums数组长度为n 由于题意不允许使用除法,所以我们可以分别维护从左往右的前缀积l[i]和从右往左的前缀积r[i]。 除了头部两个以及尾部两个(下标为0,1,n-1,n-2)以外,对其余i的答案则为

l[i-2]*r[i-2]

遍历一遍更新答案即可

代码

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

    }
};
全部评论

相关推荐

07-03 11:02
中山大学 C++
字节刚oc,但距离九月秋招很近了有两段互联网实习,非腾讯字节。不敢赌转正,现在在纠结去还是不去如果实习俩月离职会有什么后果吗
阿城我会做到的:不去后悔一辈子,能否转正取决于ld的态度,只要他不卡,答辩就是走流程,个人觉得可以冲一把
投递字节跳动等公司9个岗位
点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务