题解 | #牛群重量积#

牛群重量积

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

考察的知识点:数组;

解答方法分析:

  1. 创建一个长度为n的正整数数组left,并将所有元素初始化为1。
  2. 创建一个长度为n的正整数数组right,并将所有元素初始化为1。
  3. 使用循环从索引2开始遍历数组nums,将left数组的当前位置元素设置为left数组上一个位置元素乘以nums数组当前位置上两个元素的乘积。
  4. 使用逆向循环从倒数第三个位置开始遍历数组nums,将right数组的当前位置元素设置为right数组下一个位置元素乘以nums数组当前位置下两个元素的乘积。
  5. 创建一个长度为n的正整数数组result,并将每个位置上的元素初始化为1。
  6. 使用循环遍历数组nums,将result数组的当前位置元素设置为left数组当前位置元素乘以right数组当前位置元素。
  7. 返回result数组作为最终的结果。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型vector
     * @return int整型vector
     */
    vector<int> productExceptSelf(vector<int>& nums) {
        int n = nums.size();
        vector<int> left(n, 1);
        vector<int> right(n, 1);
        vector<int> res(n, 1);

        for (int i = 2; i < n; i++)
            left[i] = left[i - 1] * nums[i - 2];
        for (int i = n - 3; i >= 0; i--)
            right[i] = right[i + 1] * nums[i + 2];
        for (int i = 0; i < n; i++) {
            left[i] *= right[i];
        }
        return left;
    }
};

全部评论

相关推荐

昨天 10:39
门头沟学院 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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