当前位置: 首页 > 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.xdnf.cn/news/1258957.html

相关文章:

  • 4G/5G无线电单元系统
  • 网络安全与软件定义汽车的发展
  • 计算机视觉前言-----OpenCV库介绍与计算机视觉入门准备
  • 学习嵌入式第二十二天
  • Centos6停止服务后yum改用阿里云
  • python中的集合
  • OpenCV 入门教程:开启计算机视觉之旅
  • Redis 编译错误:缺少静态库文件,如何解决?
  • MCU中的晶振(Crystal Oscillator)
  • 机试备考笔记 7/31
  • Linux总线,设备和驱动关系以及匹配机制解析
  • 国内使用 npm 时配置镜像源
  • 多模态融合(Multimodal Fusion)
  • 多线程问题,子线程同时操作全局变量,使用后需要清空吗 ?
  • MyBatis-Plus Service 接口:如何在 MyBatis-Plus 中实现业务逻辑层??
  • RabbitMQ面试精讲 Day 15:RabbitMQ故障转移与数据恢复
  • 5G专网提高产业生产力
  • STM32学习笔记4-OLED外部中断和中断系统
  • Ubuntu 系统 Docker 启动失败(iptables/nf\_tables)
  • Java基础学习1(Java语言概述)
  • 深入解析Java类加载机制:双亲委派模型的设计与实现
  • Springboot 使用 JPA 分页查询
  • Docker Buildx最佳实践:多架构镜像构建指南
  • 北京-4年功能测试2年空窗-报培训班学测开-第七十天-面试第一天
  • Debian系统 为账号添加sudo权限
  • 【驱动】RK3576-Debian系统使用ping报错:socket operation not permitted
  • C++线程库的学习
  • MCU-基于TC397的双BootLoader设计方案
  • 【VLLM篇】:原理-实现
  • 【运维进阶】NFS 服务器