1class Solution {2public:3vector<int> productExceptSelf(vector<int> &nums) {4int zero = 0, product = 1;5for (auto i : nums) {6if (i == 0)7zero++;8else9product *= i;10}11for (int i = 0; i < nums.size(); i++) {12if (nums[i] == 0 && zero > 1) {13nums[i] = 0;14} else if (nums[i] == 0) {15nums[i] = product;16} else if (zero > 0) {17nums[i] = 0;18} else19nums[i] = product / nums[i];20}21return nums;22}23};