FULLSTACKDEVS Telegram 753
#Algorithm #Sliding_window
#SlidingWindow #CSharp



🧩 الگوریتم Sliding Window:

الگوریتم Sliding Window یکی از تکنیک‌های مهم برای حل مسائل آرایه‌ها و رشته‌ها به طور بهینه است. این روش با استفاده از دو نشانگر برای بررسی بخش‌های مختلف داده، به سرعت جواب رو پیدا می‌کنه.

🔑 چطور کار می‌کنه؟
- دو نشانگر (`left` و `right`) برای نمایش پنجره (قسمتی از داده) استفاده می‌کنیم.
- نشانگر راست حرکت می‌کنه و هر بار یک کاراکتر یا مقدار جدید بررسی می‌شه.
- وقتی که شرایط خاصی مثل وجود مقدار تکراری یا رسیدن به اندازه‌ای خاص محقق بشه، نشانگر چپ حرکت می‌کنه تا پنجره رو کوچکتر کنیم.

مزیت اصلی: زمان اجرا به O(n) کاهش می‌یابد که نسبت به روش‌های سنتی با O(n²) بسیار سریع‌تر است.

💡 مثال: طول بزرگ‌ترین زیررشته بدون کاراکتر تکراری
ورودی: "abcabcbb"
خروجی: 3 (زیربرنامه "abc" بزرگ‌ترین زیررشته بدون تکرار است)



using System;
using System.Collections.Generic;

class Solution {
public int LengthOfLongestSubstring(string s) {
HashSet<char> set = new HashSet<char>();
int left = 0, maxLength = 0;

for (int right = 0; right < s.Length; right++) {
while (set.Contains(s[right])) {
set.Remove(s[left]);
left++;
}
set.Add(s[right]);
maxLength = Math.Max(maxLength, right - left + 1);
}

return maxLength;
}
}


کاربردها:
- پیدا کردن طول بزرگترین زیررشته یا زیرآرایه
- جستجوی زیرمجموعه‌ها با ویژگی‌های خاص
- مسائل مربوط به جمع یا مقایسه زیرآرایه‌ها و زیررشته‌ها



این الگوریتم خیلی مفیده برای حل مسائل بهینه در آرایه‌ها و رشته‌ها، خصوصاً وقتی نیاز به
بررسی بخش‌های مختلف داریم!



@fullStackDevs



tgoop.com/fullStackDevs/753
Create:
Last Update:

#Algorithm #Sliding_window
#SlidingWindow #CSharp



🧩 الگوریتم Sliding Window:

الگوریتم Sliding Window یکی از تکنیک‌های مهم برای حل مسائل آرایه‌ها و رشته‌ها به طور بهینه است. این روش با استفاده از دو نشانگر برای بررسی بخش‌های مختلف داده، به سرعت جواب رو پیدا می‌کنه.

🔑 چطور کار می‌کنه؟
- دو نشانگر (`left` و `right`) برای نمایش پنجره (قسمتی از داده) استفاده می‌کنیم.
- نشانگر راست حرکت می‌کنه و هر بار یک کاراکتر یا مقدار جدید بررسی می‌شه.
- وقتی که شرایط خاصی مثل وجود مقدار تکراری یا رسیدن به اندازه‌ای خاص محقق بشه، نشانگر چپ حرکت می‌کنه تا پنجره رو کوچکتر کنیم.

مزیت اصلی: زمان اجرا به O(n) کاهش می‌یابد که نسبت به روش‌های سنتی با O(n²) بسیار سریع‌تر است.

💡 مثال: طول بزرگ‌ترین زیررشته بدون کاراکتر تکراری
ورودی: "abcabcbb"
خروجی: 3 (زیربرنامه "abc" بزرگ‌ترین زیررشته بدون تکرار است)



using System;
using System.Collections.Generic;

class Solution {
public int LengthOfLongestSubstring(string s) {
HashSet<char> set = new HashSet<char>();
int left = 0, maxLength = 0;

for (int right = 0; right < s.Length; right++) {
while (set.Contains(s[right])) {
set.Remove(s[left]);
left++;
}
set.Add(s[right]);
maxLength = Math.Max(maxLength, right - left + 1);
}

return maxLength;
}
}


کاربردها:
- پیدا کردن طول بزرگترین زیررشته یا زیرآرایه
- جستجوی زیرمجموعه‌ها با ویژگی‌های خاص
- مسائل مربوط به جمع یا مقایسه زیرآرایه‌ها و زیررشته‌ها



این الگوریتم خیلی مفیده برای حل مسائل بهینه در آرایه‌ها و رشته‌ها، خصوصاً وقتی نیاز به
بررسی بخش‌های مختلف داریم!



@fullStackDevs

BY Web Devs


Share with your friend now:
tgoop.com/fullStackDevs/753

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. 5Telegram Channel avatar size/dimensions How to Create a Private or Public Channel on Telegram? The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up.
from us


Telegram Web Devs
FROM American