一、题目
已知函数 signFunc(x) 将会根据 x 的正负返回特定值:
如果 x 是正数,返回 1 。
如果 x 是负数,返回 -1 。
如果 x 是等于 0 ,返回 0 。
给你一个整数数组 nums 。令 product 为数组 nums 中所有元素值的乘积。
返回 signFunc(product)
来源:力扣
二、思路
题中返回的值是判断数组nums中所有元素值乘积的正负有两种思路
1.正常求解:依次遍历数组中的值挨个相乘,再判断正负。
2.1,-1,0代表的是正数、负数、零,可以通过判断数组中是否有零和负数奇偶来判断正负。
三、代码
方法一:
class Solution:
def arraySign(self, nums: List[int]) -> int:
L=len(nums)
k=1
for i in range(L):
k=nums[i]*k
if k>0:
return 1
elif k<0:
return -1
else:
return 0
方法二:
class Solution:
def arraySign(self, nums: List[int]) -> int:
k = 1
for x in nums:
if x == 0:
return 0
if x < 0:
k *= -1
return k