zoukankan      html  css  js  c++  java
  • leetCode(43):Product of Array Except Self 分类: leetCode 2015-07-19 19:02 60人阅读 评论(0) 收藏

    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.)

    要考虑数组中0的个数,没有零,有一个0和有两个0的情况是不同的,如下:

    class Solution {
    public:
        vector<int> productExceptSelf(vector<int>& nums) {
            int product=1;
            int nums_zero=0;
            int one_zero_pos=0;
            vector<int> output;
            for(int i=0;i<nums.size();++i)
            {
                if(nums[i]==0 && nums_zero==0)
                {
                    nums_zero++;
                    one_zero_pos=i;
                    continue;
                }
                else if(nums[i]==0 && nums_zero==1)
                {
                    nums_zero++;
                    break;
                }
                product=product*nums[i];
            }
            if(nums_zero==0)
            {//没有0
                 for(int i=0;i<nums.size();++i)
                 {//所有数的乘积除以该数
                    output.push_back(product/nums[i]);
                 }
            }
            else if(nums_zero==1)
            {
                 for(int i=0;i<nums.size();++i)
                 {//除了为0的位置的值不为0外,其他位置都是0
                     if(i!=one_zero_pos)
                        output.push_back(0);
                     else
                        output.push_back(product);
                 }
            }
            else
            {
                 for(int i=0;i<nums.size();++i)
                 {//全是0
                     output.push_back(0);
                 }
            }
          
            return output;
        }
    };


  • 相关阅读:
    每日一(水)题
    操作树学习笔记
    「THUSCH 2017」大魔法师
    几个规律
    DP专题(DP进阶题单 )
    康托展开&逆康托展开
    一道题目
    P5629 【AFOI-19】区间与除法 题解
    留言板
    NOIP2020考试总结
  • 原文地址:https://www.cnblogs.com/zclzqbx/p/4687054.html
Copyright © 2011-2022 走看看