LeetCode:238。自己を除く配列の積



Leetcode 238 Product Array Except Self



  1. 配列0にがない場合は、配列P内のすべての数値の積を計算します。最初のiを削除しますビット要素の積ビットP/nums[i]
  2. 配列0に1つある場合、このビットの積は個別に計算されます。その他のビット 自己を除く配列の積 すべて0
  3. 配列に2つ以上ある場合0自己を除く配列の積 すべて0

ACコード

class Solution { public: vector productExceptSelf(vector& nums) { vector products long long int total_product = 1 int zero_count = 0 for(auto iter = nums.begin() iter != nums.end() ++iter) { if(*iter == 0) { ++zero_count } else { total_product *= (*iter) } } for(auto iter = nums.begin() iter != nums.end() ++iter) { if(zero_count == 0) { products.push_back(total_product/(*iter)) } else if(zero_count == 1 && *iter == 0) { products.push_back(total_product) } else { products.push_back(0) } } return products } }