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

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

题目

思路

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

先求每个数左边所有数的乘积,保存到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.kler.cn/a/548336.html

相关文章:

  • 在IntelliJIDEA中使用Gradle创建Web项目的步骤
  • 二分搜索法、二分查找法【C/C ++】
  • 湖仓分析|浙江霖梓基于 Doris + Paimon 打造实时/离线一体化湖仓架构
  • GC 基础入门
  • 哈希表(典型算法思想)—— OJ例题算法解析思路
  • git如何下载指定版本
  • 一个Jakarta Batch导出数据库(比如postgreSQL)的一个表的例子
  • 开发基础(8):鸿蒙图表开发
  • Linux 的目录结构
  • Selenium WebDriver自动化测试(扩展篇)--Jenkins持续集成
  • 华为小艺支持DeepSeek
  • Python Pandas(11):Pandas 数据可视化
  • Git 修改或删除某次提交信息
  • 【Axure高保真原型】画线效果
  • 【JavaEE进阶】验证码案例
  • Springboot_实战
  • 第1825天 | 我的创作纪念日:缘起、成长经历、大方向
  • OPEN CODER : THE OPEN COOKBOOK FOR TOP -TIER CODE LARGE LANGUAGE MODELS
  • 【人工智能】释放数据潜能:使用Featuretools进行自动化特征工程
  • SQL进阶能力:经典面试题