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

力扣238:除自身之外数组的乘积

力扣238:除自身之外数组的乘积

  • 题目
  • 思路
  • 代码

题目

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。

请 不要使用除法,且在 O(n) 时间复杂度内完成此题。

思路

除自身之外的数组的乘积其实不就是左边全部的数相乘再乘上右边全部的数吗,这不是就是前缀和后缀的思想。所以我们直接构造两个数组当作前缀乘和后缀乘 。只是要注意 前缀乘的第一个位置和后缀乘的最后一个位置要设为1。这样才能继续下去。我们使用三次循环分别求得前缀乘,后缀乘和答案数组。

代码

class Solution {
public:vector<int> productExceptSelf(vector<int>& nums) {int n = nums.size();vector<int> left(nums);vector<int> right(nums);left[0] = 1;right[n-1] = 1;vector<int> res(n,1);for(int i = 1;i < n;i++){left[i] = left[i-1] * nums[i-1];}for(int i = n-2;i >=0;i--){right[i] = right[i+1] *nums[i+1];}for(int i = 0;i < n;i++){res[i] = left[i] * right[i];}return res;}
};
http://www.dtcms.com/a/318825.html

相关文章:

  • 快速开发实践
  • 使用Spring Boot + Angular构建安全的登录注册系统
  • 十八、MySQL-DML-数据操作-插入(增加)、更新(修改)、删除
  • LongVie突破超长视频生成极限:1分钟电影级丝滑视频,双模态控制告别卡顿退化
  • 本地组策略编辑器无法打开(gpedit.msc命令异常)
  • 编程之线性代数矩阵和概率论统计知识回顾
  • OpenCV 图像处理基础操作指南(一)
  • 基于人眼视觉特性的相关图像增强基础知识介绍
  • C++入门自学Day7-- String类的使用(续)
  • windows_exporter-0.13.0-amd64.exe 怎么安装?Windows服务安装与运行方法
  • 中国341个城市人力需求指数数据集
  • 【MATLAB】(十)符号运算
  • 一文读懂 C# 中的 Bitmap
  • 知识随记-----Qt 实用技巧:自定义倒计时按钮防止用户频繁点击
  • 3D 软件在游戏开发中的全链路应用:从原型到上线的实战解析
  • Docker Buildx最佳实践:多架构镜像构建指南
  • Mac/Windows跨平台PDF与AI高效解决方案
  • sigprocmask 函数深度解析
  • html页面使用jspdf预览及下载pdf模板
  • 使用驱动移除内核回调,
  • golang开源库之Syncthing
  • Unity URP渲染管线动态修改材质球状态
  • 基于 HT 引擎实现 3D 智慧物流转运中心一体化管控系统
  • 【CS创世SD NAND征文】小型夜灯为何需要存储芯片?从基础照明到智能存储的升级密码
  • 生成式AI时代,Data+AI下一代数智平台建设指南
  • EP04:【DL 第二弹】张量的线性代数运算
  • 内网穿透原理和部署教程
  • 京东关键字搜索商品列表接口开发实战:从参数优化到分布式调用
  • localforage的数据仓库、实例、storeName和name的概念和区别
  • VBA之Word应用第四章第一节:段落集合Paragraphs对象(一)