当前位置: 首页 > news >正文

算法与数据结构(除自身以外数组的乘积)

题目

思路

这个题要求除自身以外其他元素的乘积,我们可以将数组中的数分为两部分,一部分是它左边的数,另一部分是它右边的数。

先求每个数左边所有数的乘积,保存到answer数组中,再求右边数的乘积,每个与answer[i]相乘,answer数据即为最后的结果

解题过程

首先我们将answer[0]赋为1,因为索引为0的元素左边元素乘积为0,当前元素左边数的乘积是前一个元素值和前一个元素左边元素乘积相乘。

然后不断求右边的元素值,与answer[i]相乘,即可得到想要的结果。

代码

class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
        //用answer[i]代表左侧元素的乘积
        int length = nums.size();
        vector<int> answer(length);
        answer[0]=1;
        //索引为0的左侧没有元素,所以为1
        for(int i=1;i<length;i++)
        {
            answer[i] = nums[i-1] * answer[i-1];
        }
        //用R代表右侧元素的乘积
        int R=1;
        for(int i=length-1;i>=0;i--)
        {
            answer[i] = answer[i]*R;
            R *= nums[i];
        }
        return answer;
    }
};

相关文章:

  • 第2章:进阶格式与结构化元素
  • 如何利用PLM软件有效地推进制造企业标准化工作?
  • 1.综述 Google 的软件工程读书笔记
  • Golang Model 字段自动化校验设计
  • WEB安全--SQL注入--常见的注入手段
  • cv2.Sobel
  • 构建现代微服务安全体系:Spring Security、JWT 与 Spring Cloud Gateway 实践
  • 如何在 IntelliJ IDEA 中使用 Bito AI 插件
  • C++编程,#include <iostream>详解,以及using namespace std;作用
  • Android的Activity生命周期知识点总结,详情
  • ML.Net二元分类
  • spring boot 对接aws 的S3 服务,实现上传和查询
  • vue3.x 自定义hook函数详细解读
  • CAS单点登录(第7版)18.日志和审计
  • Java:单例模式(Singleton Pattern)及实现方式
  • sql sqlserver的特殊函数COALESCE和PIVOT的用法分析
  • 理解 WebGPU 中的 navigator.gpu 和 adapter:从浏览器到显卡的旅程
  • 视频编码标准(H.264/AVC、H.265/HEVC、AV1、MPEG-2 和 MPEG-4 Part 2)
  • Python常见面试题的详解6
  • vscode/cursor 写注释时候出现框框解决办法
  • 一周观展|一批重量级考古博物馆开馆:从凌家滩看到孙吴大墓
  • 国宝归来!子弹库帛书二、三卷抵达北京
  • 上海市第二十届青少年科技节启动:为期半年,推出百余项活动
  • 工人日报:应对“职场肥胖”,健康与减重同受关注
  • 张国清将赴俄罗斯举行中俄“长江—伏尔加河”地方合作理事会第五次会议和“东北—远东”政府间合作委员会双方主席会晤
  • 俄媒:俄乌伊斯坦布尔谈判将于北京时间今天17时30分开始