2022.6.30今天你刷题了吗?
题目:
已知函数 signFunc(x) 将会根据 x 的正负返回特定值:
如果 x 是正数,返回 1 。
如果 x 是负数,返回 -1 。
如果 x 是等于 0 ,返回 0 。
给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。
返回 signFunc(product) 。
分析:
给你一个数组,把数组所以元素乘起来得到ans,然后判断ans的正负关系输出相对应的值。
思路:这里不能直接把结果乘出来(因为题目要求),所以我们换个思路,只要里面判断到元素=0,那么直接返回0,如果元素中有负数,则记录一次,最后只需要判断负数的次数关系来进行结果输出。
解析:
1.暴力求解
class Solution {
public:
int arraySign(vector<int>& nums) {
bool sum = true;
for (auto num : nums)
{
if (num == 0)
{
return 0;
}
if (num < 0)
{
sum = !sum;
}
}
return sum ? 1 : -1;
}
};