Mündəricat
Problem bəyanat
Massivin Məhsulunun İşarəsi LeetCode Həlli – Bir funksiya var signFunc(x)
bu qaytarır:
1
ifx
müsbətdir.-1
ifx
mənfi.0
ifx
bərabərdir0
.
Siz tam ədəd massivi verilmişdir nums
. Qoy product
hamının məhsulu ol massivdəki dəyərlər nums
.
Qayıtmaq signFunc(product)
.
Input: nums = [-1,-2,-3,-4,3,2,1] Output: 1 Explanation: The product of all values in the array is 144, and signFunc(144) = 1
Izahat
- Sadə intuisiya çoxalmaq əvəzinə mənfi və sıfırları yoxlayırıq, çünki cavaba təsir edəcək budur.
- Beləliklə, nə vaxt rastlaşdığımızı yoxlayacağıq
0
massivdə, onda biz 0 qaytarırıq. Hər hansı bir ədədi 0-a vurmaq 0 verir. - İkincisi, əgər ədəd[i]<0 onun mənfi olması deməkdirsə, onda n ie sayını artırın.
n++
. - Döngədən çıxdıqdan sonra n-nin tək və ya cüt olduğunu yoxlayın? Çünki biz bilirik ki, 2 mənfi ədəd vurularsa, onlar həmişə +ve rəqəmi verəcəklər. Beləliklə, n cütdürsə, +1 qaytarın. Və əgər təkdirsə, onda -1 qaytarın.
0 ilə qarşılaşsaq, dərhal geri qayıda bilərik. Əks halda, mənfi cəhətləri izləyin. Əgər neqativlərin sayı qəribədir, məhsul mənfidir. Mənfilərin sayı cütdürsə, məhsul müsbətdir.
Kodu
Massivin məhsulunun işarəsi üçün C++ kodu
class Solution { public: int arraySign(vector<int>& nums) { int i , count_neg = 0; for(i=0 ; i<nums.size() ; i++) { if(nums[i] == 0) return 0; else if(nums[i] < 0) count_neg++; } if(count_neg %2 == 0) return 1; else return -1; } };
Massivin Məhsulunun İşarəsi üçün Java Kodu
class Solution { public int arraySign(int[] nums) { int sign = 1; for (int n : nums) { if (n == 0) { return 0; } if (n < 0) { sign = -sign; } } return sign; } }
Massivin məhsulunun işarəsi üçün Python kodu
class Solution: def arraySign(self, nums: List[int]) -> int: result = 1 for n in nums: if not n: return n if n < 0: result = -result return result
Array LeetCode Həllinin Məhsulunun İşarəsi üçün Mürəkkəblik Təhlili
Zamanın mürəkkəbliyi
O (n) seriala tək keçid etdiyimiz üçün.
Kosmik Mürəkkəblik
O(1) çünki biz yalnız bir dəyişəni nəzərə alırıq.
Referans: https://en.wikipedia.org/wiki/Array_data_structure