added productExceprSelf

This commit is contained in:
wt
2026-04-08 18:30:15 +07:00
parent 1bb417d151
commit e6fa2e09e2
8 changed files with 66 additions and 1 deletions
+16
View File
@@ -0,0 +1,16 @@
#include <cassert>
#include <vector>
#include "productExceptSelf.hpp"
int main() {
std::vector<int> nums = {1, 2, 3, 4};
std::vector<int> expectednums = {24, 12, 8, 6};
std::vector<int> resnums = productExceptSelf(nums);
assert(resnums == expectednums);
nums = {-1, 1, 0, -3, 3};
expectednums = {0, 0, 9, 0, 0};
resnums = productExceptSelf(nums);
assert(resnums == expectednums);
return 0;
}
@@ -0,0 +1,23 @@
#include <vector>
inline std::vector<int> productExceptSelf(std::vector<int> &nums) {
int n = nums.size();
}
// def productExceptSelf(nums):
// n = len(nums)
// answer = [1] * n
// #Первый проход : префиксные произведения
// #answer[i] содержит произведение всех элементов слева от i
// for i in range(1, n):
// answer[i] = answer[i-1] * nums[i-1]
// #Второй проход : суффиксные произведения
// #suffix накапливает произведение элементов справа
// suffix = 1
// for i in range(n-1, -1, -1):
// answer[i] *= suffix # умножаем на произведение справа
// suffix *= nums[i] # обновляем суффиксное произведение
// return answer