Skip to content
  • Kompüter elmi

    Kompüter elmləri əsaslı müzakirə kateqoriyası

    4 4
    4 Topics
    4 Posts
    codexC
    Sliding window nümunəsi bir "pəncərə" yaratmaqdan ibarətdir. Bu "pəncərə" ya bir massivdəki elementlər qrupu, ya da bir rəqəm ola bilər. Müəyyən şərtlərə əsasən "pəncərə" genişlənə və ya bağlana bilər (və ya yeni bir "pəncərə" yaradıla bilər). Bu nümunə, massivdə və ya sətirdə məlumat alt dəstini izləmək üçün çox faydalıdır. Problem Bir maxSubarraySum funksiyası yazın. Bu funksiya tam ədədlərdən ibarət bir massiv və n adlı bir rəqəm qəbul etməlidir. Funksiya massivdə ardıcıl n elementin maksimum cəmini tapmalıdır. Naiv həll Bu üsul massivdəki bütün mümkün n uzunluqlu alt massivləri yoxlayır və onların cəmini hesablayır. Zaman mürəkkəbliyi: O(n²) function maxSubarraySum(array, num) { if (num > array.length) return null; let max = -Infinity; for (let i = 0; i < array.length - num + 1; i++) { let temp = 0; for (let j = 0; j < num; j++) { temp += array[i + j]; } if (temp > max) { max = temp; } } return max; } maxSubarraySum([1, 2, 5, 2, 8, 1, 5], 4); // 17 Çatışmazlıqlar: Hər bir alt massiv üçün n dəfə toplanma əməliyyatı aparırıq. Böyük massivlər üçün performans çox aşağı olur. Sliding window həlli Bu üsulda bir pəncərə (window) istifadə edirik və onu hərəkət etdiririk. Məntiq: Əvvəlcə ilk n elementin cəmini hesablayırıq. Sonra bu cəmi tədricən yeniləyirik: Yeni elementi əlavə edirik. Əvvəlki pəncərədən çıxan elementi çıxırıq. Ən böyük cəmi tapırıq. Zaman mürəkkəbliyi: O(n) function maxSubarraySum(array, num) { let maxSum = 0; let tempSum = 0; if (num > array.length) return null; for (let j = 0; j < num; j++) { maxSum += array[j]; } tempSum = maxSum; for (let i = num; i < array.length; i++) { tempSum = tempSum - array[i - num] + array[i]; maxSum = Math.max(maxSum, tempSum); } return maxSum; } maxSubarraySum([1, 2, 5, 2, 8, 1, 5], 4); // 17 Üstünlüklər: O(n²) əvəzinə O(n) mürəkkəbliklə işləyir. Daha az yaddaş istifadə edir. Böyük massivlər üçün daha effektivdir. Nəticə Sliding window nümunəsi ardıcıl verilənləri analiz edərkən çox güclü üsuldur. Bu metod sürətli və yaddaş baxımından effektiv həllər yaratmağa imkan verir. Bu yanaşma aşağıdakı hallarda xüsusilə faydalıdır: Ardıcıl ən böyük və ya ən kiçik məbləği tapmaq Sətirlərdə və massivlərdə xüsusi ardıcıllıqları izləmək Məlumat axınını optimallaşdırmaq
  • Front-end

    Frontend based discussion board

    0 0
    0 Topics
    0 Posts
    No new posts.
  • Back-end

    Backend based discussion board

    1 1
    1 Topics
    1 Posts
    codexC
    Tapşırıq: sumFirstAndLastDigit adlı bir metod yazın. Bu metod int tipində number adlı bir parametr qəbul edir. Metodun işləmə qaydası: Verilən ədədin ilk və son rəqəmi tapılmalıdır. Bunun üçün bir dövr (loop) istifadə edərək ilk rəqəmi müəyyənləşdirməlidir. İlk və son rəqəmlərin cəmini qaytarmalıdır. Əgər ədəd mənfidirsə, metod -1 qaytarmalıdır. Test Case sumFirstAndLastDigit(252); → 4 qaytarmalıdır, çünki ilk rəqəm 2, son rəqəm 2, və 2+2=4. sumFirstAndLastDigit(257); → 9 qaytarmalıdır, çünki ilk rəqəm 2, son rəqəm 7, və 2+7=9. sumFirstAndLastDigit(0); → 0 qaytarmalıdır, çünki yalnız bir rəqəm var (0), və 0+0=0. sumFirstAndLastDigit(5); → 10 qaytarmalıdır, çünki yalnız bir rəqəm var (5), və 5+5=10. sumFirstAndLastDigit(-10); → -1 qaytarmalıdır, çünki ədəd mənfidir və yalnız müsbət ədədlər qəbul edilir. Əlavə mürəkkəblik: Metodun gövdəsində (body) maksimum 6 sətrlik kod yazaraq həll edin.
  • DevOps

    Devops based discussion board

    0 0
    0 Topics
    0 Posts
    No new posts.
  • Verilənlər bazası

    Verilənlər bazası üzrə müzakirə bölümü

    0 0
    0 Topics
    0 Posts
    No new posts.
  • Mobil proqramlaşdırma

    Mobil proqramlaşdırma üzrə müzakirə bölümü

    0 0
    0 Topics
    0 Posts
    No new posts.
  • Blockchain üzrə müzakirə bölümü

    0 0
    0 Topics
    0 Posts
    No new posts.
  • QA based discussion board

    0 0
    0 Topics
    0 Posts
    No new posts.
  • Here we discuss any topics that not related to the boards above

    1 1
    1 Topics
    1 Posts
    codexC
    Bu yazıda başıma gələn hadısənin həllini heç-bir yerdə tapa bilməyərək müxtəlif resurslardan toplayaraq bir araya gətirmək istədim. ChatGPT sağolsun müəyyən əmrlərlə yardımçı olurdu lakin ardıcıllıq çox önəmli olduğundan proses tamamlanmırdı. Deməli iki server düşünün, A serverində işləyərkən onun dataları xarab olur və sən ayarları kopyalaya bilmirsən. Əgər sizin də Contabo serverinizdə layihəniz varsa o zaman bu sizin başınıza da gələ bilər Nə yaxşı ki, backup məntiqini düşünmüşdüm və layihələrin əsas data-ları bərpa etmək asanlıqla mümkün oldu. Bir həftədən sonra B serverini aldım və yenidən A serverində nələr etmişdimsə onu da konfiqurasiya edə bildim. Lakin saytlar yalnız http üzərindən işləyirdi və ya xəta verirdi. Mən nginx istifadə etdiyimdən online olaraq certbot vasitəsi ilə sertifikatların alınması çətin oldu. Ona görə də ilk öncə nginx-i söndürdüm: sudo systemctl stop nginx Sonra offline olaraq sertifikatları yenidən almağa cəht etdim: sudo certbot certonly --standalone -d example.com -d www.example.com --force-renewal Proseslərə razılığımı verdim və sertifikatlar uğurla yeniləndi. Sonra sayt üçün nginx configləri yenilədim. Ən önəmlisi də ssl_certificate hissəsinə nəzər yetirmək lazımdı ki, yenicə əldə etdiyimiz serifikatları düzgün təyin edə bilək. # /etc/nginx/site-available/example.com server { server_name example.com www.example.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://127.0.0.1:8001; proxy_redirect off; # Socket.IO Support proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } listen 443 ssl http2; # managed by Certbot ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot } Sonra nginx işə salırıq: sudo systemctl start nginx Əgər hər şeyi düzgün konfiqurasiya etmisinizsə o zaman xəta çıxmayacaq.