给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。

示例:

输入: [1,2,3,4]
输出: [24,12,8,6]

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

进阶:
你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视为额外空间。)

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/product-of-array-except-self
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
————————
解题思路:借鉴leetcode的题解,数组中该位置的乘积等于该位置左边的乘积值和该位置右边的乘积值相乘得到的。我们使用一个数组保存在该点左边的所有数的乘积,先从左边遍历一遍,然后从右边往左遍历一遍,其C++代码如下,时间复杂度为O(n)O(n)O(n),空间复杂度为O(1)O(1)O(1)。

class Solution {public:vector<int> productExceptSelf(vector<int>& nums) {vector<int> num(nums.size(),1);  // 建立一个数组int k = 1;  //用于保存临时值for(int i=1;i<nums.size();++i)  // 先从左边遍历一遍{k *= nums[i-1];  // 计算该点左边所有数据的乘积值,放进数组中num[i] = k;}k = 1;for(int i=nums.size()-2;i>=0;--i)  // 从右边遍历一遍{k *= nums[i+1];num[i] *= k;}return num;}
};

leetcode —— 238. 除自身以外数组的乘积相关推荐

  1. leetcode 238. Product of Array Except Self | 238. 除自身以外数组的乘积(Java)

    题目 https://leetcode.com/problems/product-of-array-except-self/ 题解 本题思路比较简单,先算一个原数组的总的乘积 p,然后对应除以每一个位 ...

  2. 【LeetCode笔记】238. 除自身以外数组的乘积(Java、思路题)

    文章目录 题目描述 思路 & 代码 更新版 题目描述 首先暴力二层循环肯定可以,然后先累乘整个数组,再用除法肯定也行. 但是很遗憾,两种做法都不满足题目说明. 思路 & 代码 O(n) ...

  3. 238 除自身以外数组的乘积(前后缀分解)

    1. 问题描述: 给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积. ...

  4. 238.除自身以外数组的乘积

    给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 . 题目数据 保证 数组 nums之中任意元素的全部前缀元 ...

  5. leetcode刷刷题(44) ---- 除自身以外数组的乘积(C语言版)

    2020-6-4 I once heard that the evil spirits who lived in Rashomon fled for fear of the cruelty of hu ...

  6. DAY-4 | 力扣 - 求自身以外数组的乘积:区间划分,左右累乘,巧求乘积

    C语言好题方法总结.日积月累,慢慢进步! 目录 一.题干 二.题解 1.暴力破解法 2.左右累乘法 思路 代码 三.总结 一.题干 LeetCode链接 238. 除自身以外数组的乘积https:// ...

  7. LeetCode刷题(十)----数组-----medium部分(Java、C++)

    LeetCode刷题(十)-----数组-------medium部分(Java.C++) 238. 除自身以外数组的乘积 给定长度为n的整数数组nums,其中n>1,返回输出数组output, ...

  8. LeetCode实战:除自身以外数组的乘积

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given an ar ...

  9. 【LeetCode】剑指 Offer 66. 构建乘积数组

    [LeetCode]剑指 Offer 66. 构建乘积数组 文章目录 [LeetCode]剑指 Offer 66. 构建乘积数组 package offer;import java.util.Arra ...

最新文章

  1. 【Qt】Qt样式表(Style Sheet):官网说明及例子
  2. CADisplayLink 及定时器的使用
  3. QuartzCore框架-- iOS中的动画
  4. hue安装及基本测试-笔记
  5. typescript基本类型demo
  6. java中ssm付款代码,ssm实现支付宝支付功能(图文详解)
  7. js webpack 解决跨域问题_详解webpack-dev-server使用http-proxy解决跨域问题
  8. Java Maven项目打包成可执行jar文件
  9. python调用函数(一分钟读懂)
  10. 从分析***方式来谈如何防御DDoS***
  11. 交易记录表设计注意点
  12. Windows 8设置保护视力的颜色
  13. quartus软件使用—error:top-level design entity “xxx” is undefined
  14. wps的linux文字显示模糊,wps电脑打开文字模糊怎么办
  15. UP主分析丨B站“肝视频”第一人,追剧的速度都跟不上他。
  16. 全差分运放阻抗匹配计算(四)
  17. 「YGG Japan」宣布已完成约 295 万美元的新股权私募
  18. 目前Java开发人员需求大吗 Java就业方向是什么
  19. N-vop、S-vop、Packed Bistream
  20. 《高质量程序设计指南——C++/C》第三版勘误

热门文章

  1. MVC3.0 将网站设为首页和加为收藏的实现(IE/Firefox)
  2. “Chrome不能访问更新服务器(错误:3)”的解决方法
  3. 数据抽取工具比对:Kettle、Datax、Sqoop、StreamSets
  4. 在CentOS7下安装MySQL8数据库
  5. RFI to RCE challenge
  6. .NetCore+WebUploader实现大文件分片上传
  7. 母函数 入门 + 模板
  8. Linux入门学习(十二)
  9. os系统好用的学术笔记软件_可靠软件系统的设计方法:学术文章摘要
  10. Node.js module.exports与导出