AI EducademyAIEducademy
🌳

AI పునాదులు

🌱
AI Seeds

సున్నా నుండి ప్రారంభించండి

🌿
AI Sprouts

పునాదులు నిర్మించండి

🌳
AI Branches

ఆచరణలో అన్వయించండి

🏕️
AI Canopy

లోతుగా వెళ్ళండి

🌲
AI Forest

AI లో నిపుణత సాధించండి

🔨

AI నైపుణ్యం

✏️
AI Sketch

సున్నా నుండి ప్రారంభించండి

🪨
AI Chisel

పునాదులు నిర్మించండి

⚒️
AI Craft

ఆచరణలో అన్వయించండి

💎
AI Polish

లోతుగా వెళ్ళండి

🏆
AI Masterpiece

AI లో నిపుణత సాధించండి

🚀

కెరీర్ రెడీ

🚀
ఇంటర్వ్యూ లాంచ్‌ప్యాడ్

మీ ప్రయాణం ప్రారంభించండి

🌟
ప్రవర్తనా ఇంటర్వ్యూ నైపుణ్యం

సాఫ్ట్ స్కిల్స్ నేర్చుకోండి

💻
సాంకేతిక ఇంటర్వ్యూలు

కోడింగ్ రౌండ్ విజయం సాధించండి

🤖
AI & ML ఇంటర్వ్యూలు

ML ఇంటర్వ్యూ నైపుణ్యం

🏆
ఆఫర్ & అంతకు మించి

అత్యుత్తమ ఆఫర్ పొందండి

అన్ని ప్రోగ్రామ్‌లు చూడండి→

ల్యాబ్

7 ప్రయోగాలు లోడ్ అయ్యాయి
🧠న్యూరల్ నెట్‌వర్క్ ప్లేగ్రౌండ్🤖AI లేదా మనిషి?💬ప్రాంప్ట్ ల్యాబ్🎨ఇమేజ్ జనరేటర్😊సెంటిమెంట్ ఎనలైజర్💡చాట్‌బాట్ బిల్డర్⚖️ఎథిక్స్ సిమ్యులేటర్
🎯మాక్ ఇంటర్వ్యూల్యాబ్‌లోకి వెళ్ళండి→
nav.journeyబ్లాగ్
🎯
మా గురించి

ప్రతి చోటా, ప్రతి ఒక్కరికీ AI విద్యను అందుబాటులోకి తీసుకురావడం

❓
nav.faq

Common questions answered

✉️
Contact

Get in touch with us

⭐
ఓపెన్ సోర్స్

GitHub లో బహిరంగంగా నిర్మించబడింది

నేర్చుకోవడం ప్రారంభించండి - ఇది ఉచితం
AI EducademyAIEducademy

MIT లైసెన్స్ - ఓపెన్ సోర్స్

నేర్చుకోండి

  • ప్రోగ్రాములు
  • పాఠాలు
  • ల్యాబ్

సంఘం

  • GitHub
  • సహకరించండి
  • ప్రవర్తనా నియమావళి
  • మా గురించి
  • తరచుగా అడిగే ప్రశ్నలు

మద్దతు

  • కాఫీ కొనండి ☕
  • footer.terms
  • footer.privacy
  • footer.contact
AI & ఇంజనీరింగ్ ప్రోగ్రామ్‌లు›✏️ AI Sketch›పాఠాలు›Binary Search పాటర్న్‌లు
🔍
AI Sketch • మధ్యస్థం⏱️ 17 నిమిషాల పఠన సమయం

Binary Search పాటర్న్‌లు

క్లాసిక్ Binary Search - త్వరిత సమీక్ష

Binary search ప్రతి అడుగులో search space ను సగానికి తగ్గిస్తుంది. n ఎలిమెంట్ల sorted array లో O(log n) సమయంలో లక్ష్యాన్ని కనుగొంటుంది.

def binary_search(nums, target):
    lo, hi = 0, len(nums) - 1
    while lo <= hi:
        mid = (lo + hi) // 2
        if nums[mid] == target:
            return mid
        elif nums[mid] < target:
            lo = mid + 1
        else:
            hi = mid - 1
    return -1

సరళంగా ఉంది - కానీ binary search యొక్క నిజమైన శక్తి sorted arrays కంటే చాలా దూరం వెళ్తుంది.

Search Space భావన

మీ దగ్గర ఒక పరిధిలో monotonic condition ఉన్నప్పుడు binary search పనిచేస్తుంది. "Array" ఉండాల్సిన అవసరం కూడా లేదు - మీకు [lo, hi] పరిధి మరియు ఏదో సరిహద్దు వద్ద False నుండి True కు మారే function మాత్రమే కావాలి.

Search space:  [lo .................. hi]
Condition:      F  F  F  F  T  T  T  T
                          ^-- సమాధానం
🤯
Binary search మొదటిసారి 1946 లో ప్రచురించబడింది, కానీ మొదటి bug-free వెర్షన్ 1962 వరకు రాయబడలేదు - 16 సంవత్సరాల off-by-one errors!

Answer పై Binary Search

Array లో వెతకడానికి బదులు, answer space లో వెతకండి. ప్రశ్న: "నేను X ఫలితాన్ని సాధించగలనా?" అవును అయితే, చిన్నది ప్రయత్నించండి; కాదంటే, పెద్దది ప్రయత్నించండి.

ఉదాహరణ: Koko Eating Bananas

Koko దగ్గర n అరటి గుట్టలు మరియు h గంటలు ఉన్నాయి. ఆమె సమయానికి పూర్తి చేయడానికి కనీస తినే వేగం కనుగొనండి.

def min_speed(piles, h):
    lo, hi = 1, max(piles)
    while lo < hi:
        mid = (lo + hi) // 2
        hours = sum((p + mid - 1) // mid for p in piles)
        if hours <= h:
            hi = mid      # వేగం పనిచేస్తుంది, నెమ్మదిగా ప్రయత్నించు
        else:
            lo = mid + 1  # చాలా నెమ్మది, వేగంగా వెళ్ళు
    return lo

Answer space [1, max(piles)] మరియు condition monotonic - ఎక్కువ వేగం అంటే ఎల్లప్పుడూ తక్కువ గంటలు.

పాఠం 7 / 100% పూర్తి
←Heaps మరియు Priority Queues

Discussion

Sign in to join the discussion

lessons.suggestEdit
కనీస తినే వేగం కోసం binary search answer space ను తగ్గిస్తూ
Answer పై binary search: ప్రతి iteration లో సాధ్యమైన వేగం పరిధిని తగ్గించండి.

Rotated Sorted Array

ఒక pivot వద్ద rotate చేసిన sorted array: [4, 5, 6, 7, 0, 1, 2]. ఒక సగం ఎల్లప్పుడూ sorted గా ఉంటుంది. ఏ సగమో నిర్ణయించడానికి mid ని lo తో పోల్చండి, తర్వాత లక్ష్యం sorted సగంలో ఉందో లేదో తనిఖీ చేయండి.

[4, 5, 6, 7, 0, 1, 2]
 L        M        R
ఎడమ సగం [4..7] sorted గా ఉంది.
లక్ష్యం 1 [4..7] లో లేదు → కుడి వైపు వెతకండి.
🧠త్వరిత తనిఖీ

Rotated sorted array [3,4,5,1,2] లో, mid=2 (విలువ 5) అయినప్పుడు ఏ సగం sorted?

మొదటి మరియు చివరి సంఘటన

మొదటి సంఘటన కనుగొనడానికి: లక్ష్యం దొరికినప్పుడు, ఆగకండి - hi = mid సెట్ చేసి ఎడమ వైపు వెతకడం కొనసాగించండి. చివరి కోసం, lo = mid + 1 సెట్ చేసి కుడి వైపు వెతకండి.

ఈ జత searches లక్ష్యం యొక్క సంఖ్యను కూడా ఇస్తుంది: last - first + 1.

Peak Element

రెండు పొరుగువారి కంటే పెద్ద element. Unsorted array లో కూడా binary search పనిచేస్తుంది: nums[mid] < nums[mid + 1] అయితే, peak కుడి వైపు ఉంటుంది; లేకపోతే ఎడమ వైపు. O(log n).

🤔
Think about it:Array sorted కాకపోయినా peak-finding binary search తో ఎందుకు పనిచేస్తుంది? sorted order స్థానంలో ఇక్కడ ఏ ఆస్తి ఉంటుంది?

2D Matrix లో వెతకడం

Rows sorted అయి ఉండి, ప్రతి row మొదటి element ముందటి row చివరి దాని కంటే పెద్దది అయితే, matrix ను m × n elements ఉన్న ఒకే sorted array గా చూడండి. Index k ను row k // n, column k % n గా మార్చండి.

లైబ్రరీ లేకుండా వర్గమూలం

x * x ≤ n అయ్యే అతిపెద్ద పూర్ణాంకం x కనుగొనండి. Search space: [0, n]. క్లాసిక్ binary search on answer.

def sqrt(n):
    lo, hi = 0, n
    while lo <= hi:
        mid = (lo + hi) // 2
        if mid * mid <= n:
            lo = mid + 1
        else:
            hi = mid - 1
    return hi

"గరిష్టాన్ని కనిష్టం చేయి" పాటర్న్

"Split array largest sum" లేదా "D రోజుల్లో packages పంపే capacity" వంటి సమస్యలు చెత్త సందర్భాన్ని కనిష్టం చేయమని అడుగుతాయి. సమాధానం monotonic: capacity C పనిచేస్తే, C+1 కూడా పనిచేస్తుంది. C పై binary search.

🧠త్వరిత తనిఖీ

'D రోజుల్లో Packages పంపే Capacity' కోసం, binary search యొక్క search space ఏమిటి?

సార్వత్రిక Template

lo, hi = min_possible, max_possible
while lo < hi:
    mid = (lo + hi) // 2
    if condition(mid):
        hi = mid        # mid పనిచేస్తుంది, చిన్నది ప్రయత్నించు
    else:
        lo = mid + 1    # mid విఫలం, పెద్దది కావాలి
return lo

మీరు మొదటి True వెతుకుతున్నారా లేదా చివరి True వెతుకుతున్నారా అనేదాన్ని బట్టి hi = mid vs lo = mid సర్దుబాటు చేయండి.

🧠త్వరిత తనిఖీ

S పరిమాణ answer space పై O(n) feasibility check తో binary search యొక్క time complexity ఏమిటి?

🤔
Think about it:సమస్య statement లో "సాధ్యమైన కనీస గరిష్టం" లేదా "సాధ్యమైన గరిష్ట కనిష్టం" అనే పదాలు కనిపించినప్పుడు, వెంటనే ఏమి గుర్తుకు రావాలి?

📚 మరింత చదవండి

  • NeetCode - Binary Search playlist - సులభం నుండి కఠినం వరకు సమస్యలు
  • Tech Interview Handbook - Binary Search - పాటర్న్‌లు, చిట్కాలు మరియు ఆటంకాలు
  • LeetCode Binary Search study plan - క్రమానుగత సమస్యల సెట్