当前位置: 首页 > 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;
    }
};

http://www.dtcms.com/a/20364.html

相关文章:

  • 第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 写注释时候出现框框解决办法
  • 【UE】快速的搓一个基于贴图的假渲染
  • 【Linux】Ext2文件系统、软硬链接
  • Linux: 调整套接字缓冲区大小相关内核参数
  • verilog程序设计及SystemVerilog验证
  • CondaValueError: Malformed version string ‘~‘: invalid character(s)
  • DeepSeek正重构具身大模型和人形机器人赛道!
  • 使用 Express 写接口
  • SpringCloud整合seata,XA、AT、TCC、SAGA模式
  • 【人工智能】深度学习中的梯度检查:原理详解与Python实现
  • 中电联协议对接互联互通实现充电桩小程序成熟搭建