add: 230502

This commit is contained in:
Eatswap 2023-05-02 14:12:01 +08:00
parent 477e490bb4
commit 32f7bd3bd0
Signed by: Eatswap
GPG Key ID: BE661106A1F3FA0B
2 changed files with 32 additions and 0 deletions

28
cpp/2305/LC230502.cpp Normal file
View File

@ -0,0 +1,28 @@
#include <numeric>
#include <vector>
/**
* 1822. Sign of the Product of an Array
*
* There is a function signFunc(x) that returns:
*
* 1 if x is positive.
* -1 if x is negative.
* 0 if x is equal to 0.
* You are given an integer array nums. Let product be the product of all values in the array nums.
*
* Return signFunc(product).
*/
class LC230502 {
public:
static int arraySign(const std::vector<int>&) noexcept;
};
inline constexpr int sgn(int x) noexcept { return (x >> 31) | !!x; }
int LC230502::arraySign(const std::vector<int>& n) noexcept {
return std::reduce(n.begin(), n.end(), 1, [](int x, int y) {
return sgn(x) * sgn(y);
});
}

View File

@ -19,5 +19,9 @@ public:
static std::vector<int> powerfulIntegers(int, int, int) noexcept;
};
class LC230502 {
public:
static int arraySign(const std::vector<int>&) noexcept;
};
#endif //LEETCODE_CPP_DEFS_H