Array LeetCode Həllinin Məhsulunun İşarəsi

Çətinlik səviyyəsi Asan
Tez-tez soruşulur microsoftBaxılıb 17

Problem bəyanat

Massivin Məhsulunun İşarəsi LeetCode Həlli – Bir funksiya var signFunc(x) bu qaytarır:

  • 1 if x müsbətdir.
  • -1 if x mənfi.
  • 0 if x bərabərdir 0.

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

Array LeetCode Həllinin Məhsulunun İşarəsiPin

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

 

Şərh yaz

Translate »