zoukankan      html  css  js  c++  java
  • Leetcode 238. Product of Array Except Self

    238. Product of Array Except Self                  

    Total Accepted: 51070           Total Submissions: 116543           Difficulty: Medium        

    Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[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.)

    思路:product存储的是所有不为0的数的积。注意有0、1、2个0的情况。

    (1) 有0个0:v[i]=product/nums[i];

    (2) 有1个0:nums[i]==0,v[i]=product;nums[i]!=0,v[i]=0;

    (3) 有2个0:任意i,v[i]=0

    代码:

     1 class Solution {
     2 public:
     3     vector<int> productExceptSelf(vector<int>& nums) {
     4         long long product=1;
     5         int i,num=0,pos=-1;
     6         for(i=0;i<nums.size();i++){
     7             if(nums[i]==0){
     8                num++;
     9                pos=i;
    10                continue;
    11             }
    12             product=product*nums[i];
    13         }
    14         vector<int> v(nums.size(),0);
    15         if(num==1){
    16             v[pos]=product;
    17         }
    18         if(num==0){
    19             for(i=0;i<nums.size();i++){
    20                 v[i]=product/nums[i];
    21             }
    22         }
    23         return v;
    24     }
    25 };
  • 相关阅读:
    MySQL表的完整性约束
    MySQL支持的数据类型
    MySQL表操作
    MySQL存储引擎概述
    onblur和onkeyup事件
    Web控件LinkButton
    jQuery防止中文乱码
    jQuery 动态添加、删除css样式
    VS2012生成Web时报未能找到元数据文件xxx.dll
    单击EasyUI的datagrid行时不选中
  • 原文地址:https://www.cnblogs.com/Deribs4/p/5634190.html
Copyright © 2011-2022 走看看