LeetCode:238。自己を除く配列の積
Leetcode 238 Product Array Except Self
- 配列
0
にがない場合は、配列P
内のすべての数値の積を計算します。最初のi
を削除しますビット要素の積ビットP/nums[i]
- 配列
0
に1つある場合、このビットの積は個別に計算されます。その他のビット 自己を除く配列の積 すべて0
- 配列に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 } }