//在做这道题目时首先想到计算最终结果后在去进行运算
//看到用例返回的结果就知道只有三个数
//所以只要统计符号就行
class Solution {
public:
int arraySign(vector<int>& nums) {
int x=0,y=0,z=0;//正数个数,负数个数,0
for(int i=0;i<nums.size();i++)
{
if(nums[i]>0)
{
x++;//个数统计
}
if(nums[i]<0)
{
y++;//负数个数统计
}
if(nums[i]==0)
{
z++;//只要有0结果就返回0
}
}
if(z!=0)//首先判断有没有0
{
return 0;
}
if(y&1)//在判断负数出现的次数时奇数时,返回-1
{
return -1;
}
else //其他情况都是正数直接返回1
{
return 1;
}
}
};
已知函数 signFunc(x) 将会根据 x 的正负返回特定值:
如果 x 是正数,返回 1 。
如果 x 是负数,返回 -1 。
如果 x 是等于 0 ,返回 0 。
给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。
返回 signFunc(product) 。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sign-of-the-product-of-an-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。