[Leetcode] Product of Array Except Self
来源:互联网 发布:visual basic编程实例 编辑:程序博客网 时间:2024/06/07 11:46
Given an array of n integers where n > 1, nums
, return an arrayoutput
such thatoutput[i]
is equal to the product of all the elements ofnums
exceptnums[i]
.
Solve it without division and in O(n).
For example, given [1,2,3,4]
, return [24,12,8,6]
.
Follow up:
Could you solve it with constant space complexity? (Note: The output array does not count as extra space for the purpose of space complexity analysis.)
class Solution {public: /*algorithm 1) for each element A[i], compute two numbers f[i]: equal to product A[0...i-1] b[i]: equal to product A[i+1...n) 2) so for each A[i],its product is f[i]*b[i] eg:[1,2,3,4] f [1, 1, 2,6] b [24,12,4,1] r [24,12,8,6] time O(n) space O(n) */ vector<int> productExceptSelf(vector<int>& nums) { vector<int>result; int n = nums.size(); if(n < 1)return result; vector<int>f(n,1),b(n,1); for(int i = 1;i < n;i++){ f[i] = f[i-1]*nums[i-1]; } for(int i = n - 2;i >= 0;i--){ b[i] = b[i+1]*nums[i+1]; } for(int i = 0;i < n;i++){ result.push_back(f[i]*b[i]); } return result; }}; /*algorithm2: optimize the space about f and b space O(1) */ vector<int> productExceptSelf(vector<int>& nums) { int n = nums.size(); vector<int>result(n); result[0] = 1; for(int i = 1;i < n;i++){ result[i] = result[i-1]*nums[i-1]; } int right = 1; for(int i = n - 2;i >= 0;i--){ right = right*nums[i+1]; result[i] = right*result[i]; } return result; }
0 0
- [leetcode][array] Product of Array Except Self
- 【LeetCode】237 Product of Array Except Self
- #leetcode#Product of Array Except Self
- leetcode 238: Product of Array Except Self
- [leetcode] 238.Product of Array Except Self
- [leetcode] Product of Array Except Self
- LeetCode Product of Array Except Self
- leetCode(43):Product of Array Except Self
- LeetCode Product of Array Except Self
- 【leetcode】Product of Array Except Self
- 【leetcode】Product of Array Except Self
- leetcode: Product of Array Except Self
- [leetcode] Product of Array Except Self
- [LeetCode] Product of Array Except Self
- Leetcode: Product of Array Except Self
- LeetCode 238: Product of Array Except Self
- LeetCode-Product of Array Except Self
- Leetcode #238 Product of Array Except Self
- 有方向的运动js
- 性能测试工具Loadrunner中监控指标的名词解释
- Nginx+Tomcat搭建高性能负载均衡集群
- shell简介
- interface abstract 区别
- [Leetcode] Product of Array Except Self
- ECSHOP设置默认配送方式和默认支付方式
- Boost Asio服务器使用
- Jmeter之使用CSV Data Set Config实现参数化登录
- HRESULT返回值说明
- gsoap调用C#开发的WebService
- 产品不足运营补
- C语言static详解
- android帧动画,移动位置,缩放,改变透明度等动画讲解