101 KiB
कोडिंग साक्षात्कार विद्यापीठ
मी प्रारंभिकपणे ह्या सॉफ्टवेअर इंजिनिअर बनण्याच्या अभ्यास विषयांची संक्षिप्त सूची म्हणून हे निर्माण केलं होतं, परंतु ते आता आपण दिसतं असं मोठं सूची व्हायला वाढलं. या अभ्यास योजनेवर पास केल्यानंतर, मी Amazon वर सॉफ्टवेअर विकास अभियंता म्हणून नोकरी मिळवली! आपल्याला असं अधिक अभ्यास करण्याची आवश्यकता नसेल. काहीही आपल्याला येऊ शकणार नाही म्हणून आम्ही दाखवणार आहोत.
मी दिवसात 8-12 तास अभ्यास केले, काही महिन्यांसाठी. या माझ्या कथेचं असं आहे: Google साक्षात्कारासाठी मी 8 महिन्यांसाठी पूर्ण वेळ अभ्यास केलं आहे का नाही हे का
कृपया लक्षात घ्या: आपल्याला मला अधिक अभ्यास करण्याची आवश्यकता नसेल. मी अनावश्यक गोष्टींवर अनेक वेळा वेळा अवधी निघाली. त्याबद्दल अधिक माहिती खाली आहे. आपल्या मौल्यवान वेळाची व्यर्थ झाली नाही, मी आपल्याला त्यांच्या अभ्यासात येण्यासाठी मदत करेन.
येथील आयटम्स आपल्याला केवळ किटकिटायला तक्रारी साक्षात्कारासाठी अचूक तयार करतील, समाविष्ट: Amazon, Facebook, Google, आणि Microsoft जस्ती राजकारणी कंपन्या.
तुम्हाला शुभेच्छा!
भाषांतर:
भाषांतर कार्यात आहे:
हे काय आहे?
हे माझ्या अनेक महिन्यांचे अभ्यास योजना आहे, ज्यामध्ये मी एक मोठ्या कंपनीसाठी सॉफ्टवेअर इंजिनिअर बनण्यासाठी प्रयत्नशील असेल.
आवश्यक:
- कोडिंगसह थोड्या अनुभवासह (वेरिअबल्स, लूप्स, मेथड्स/फंक्शन्स, इत्यादी)
- धैर्य
- वेळ
ध्यान द्या कि ही सॉफ्टवेअर इंजिनिअरिंगसाठी अभ्यास योजना आहे, असे की फ्रंटएंड इंजिनिअरिंग किंवा फुल-स्टॅक डेव्हलपमेंटसाठी नाही. हे वास्तविकपणे त्या करियर मार्गांसाठी अनेक रोडमॅप आणि पाठ्यक्रम इतर कुठल्या ठिकाणी उपलब्ध आहेत (https://roadmap.sh/ पाहा).
कॉलेज कॉम्प्युटर सायन्स कार्यक्रममध्ये शिकायला खूप काही आहे, परंतु मुलाखतसाठी 75% जाणून असल्यास ह्याची काही पुरेशी माहिती आहे, म्हणजे मला येथे आवर्जू केलेले आहे. पूर्ण CS स्वतःशिक्षित कार्यक्रमसाठी, माझ्या अभ्यास योजनेतील संसाधने कामरान अहमदच्या कॉम्प्युटर सायन्स रोडमॅपमध्ये समाविष्ट केली गेली आहेत: https://roadmap.sh/computer-science
विषयाची सूच
अभ्यास योजना
- हे काय आहे?
- ते का वापरावे?
- ते कसे वापरावे
- तुम्हाला तुम्हाला मोठा प्रतिबंधित वाटत नसावं
- व्हिडिओ संसाधनांबद्दल एक नोट
- प्रोग्रामिंग भाषा निवडा
- डेटा संरचनांसाठी पुस्तके आणि अल्गोरिदम्स
- मुलाखत सज्जा पुस्तके
- माझे चुकीचे का न करा
- तुम्हाला काहीही दिसेल नाही याबद्दल
- दैनिक योजना
- कोडिंग प्रश्नांचे अभ्यास
- कोडिंग समस्या
Topics of Study
- अल्गोरिदमिक जटिलता / बिग-ओ / अनिन्द्य विश्लेषण
- डेटा संरचना
- अधिक माहिती
- झाडे
- झाडे - परिचय
- बायनरी शोध झाडे: बीएसटी
- हीप / प्राथमिक क्यू / बायनरी हीप
- संतुलित शोध झाडे (सामान्य अवधारणा, तपशील नाही)
- पट्ट्यांतरण: प्रीऑर्डर, इनॉर्डर, पोस्टऑर्डर, बीएफएस, डीएफएस
- क्रमवार सामुग्री व्यवस्थापन
- निवड
- उत्पादन
- हीपसॉर्ट
- क्विकसॉर्ट
- मर्जसॉर्ट
- ग्राफ
- प्रेषित
- अप्रेषित
- अजॅसेन्सी मॅट्रिक्स
- अजॅसेन्सी लिस्ट
- पट्ट्यांतरण: बीएफएस, डीएफएस
- अधिक माहिती
- निवड अभ्यास
नोकरी मिळवणे
- तुमचा रिझ्यूमे अद्यतन करा
- नोकरी शोधा
- मुलाखत प्रक्रिया आणि सामान्य मुलाखत साजरी
- मुलाखत येत्या वेळेसाठी ध्यानात असल्याचं का
- मुलाखतादारांसाठी प्रश्न
- एकदा तुम्हाला नोकरी मिळाली नंतर
---------------- सर्व खालीलपैकी विचारण्यात आणणे ऐच्छिक आहे. ----------------
ऐच्छिक अतिरिक्त विषय आणि संसाधने
- अतिरिक्त पुस्तके
- सिस्टम डिझाइन, स्केलेबिलिटी, डेटा हॅंडलिंग (जेव्हा तुम्हाला 4+ वर्षांचा अनुभव आहे)
- अधिक शिक्षण
- कॉम्पायलर्स
- इमॅक्स आणि व्हाई(एम)
- यूनिक्स कमांड लाईन टूल्स
- माहिती सिद्धांत
- पॅरिटी & हमिंग कोड
- एन्ट्रॉपी
- क्रिप्टोग्राफी
- संपीडन
- कंप्यूटर सुरक्षा
- कचरा संग्रह
- समान कार्यक्रमीकरण
- संदेशपाठ, सिरिअलिझेशन, आणि कतार प्रणाली
- ए*
- फास्ट फूरियर ट्रांसफॉर्म
- ब्लूम फिल्टर
- हायपरलॉगलॉग
- स्थानिकता-संवेगी ह्याशिंग
- वॅन एम्डे बोस झाडे
- अभिवृद्धित डेटा संरचना
- संतुलित शोध झाडे
- AVL झाडे
- स्प्ले झाडे
- लाल/काळ झाडे
- 2-3 शोध झाडे
- 2-3-4 झाडे (किंवा 2-4 झाडे)
- N-अरे (K-अरे, M-अरे) झाडे
- B-झाडे
- k-D झाडे
- स्किप झाडे
- नेटवर्क फ्लो
- विभाजित सेट्स & युनियन फिंड
- फास्ट प्रोसेसिंगसाठी गणित
- ट्रेप
- लीनियर प्रोग्रामिंग
- ज्यामिती, कोणज्यात्मक कवळ
- विचारमगारी गणित
- काही विषयांवर अतिरिक्त माहिती
- व्हिडिओ सिरिज
- कॉम्प्यूटर विज्ञान पाठ्यक्रम
- पेपर्स
ते का वापरावे?
जर तुम्ही एक मोठ्या कंपनीसाठी सॉफ्टवेअर इंजिनिअर म्हणून काम करण्याची इच्छा असेल, तर तुम्हाला हे गोष्टी माहित असणे आवश्यक आहे.
जर तुम्ही कॉम्प्युटर सायन्समधील डिग्री मिस केली असेल, जसे मला झालेलं, तर हे तुम्हाला पूर्ण करून चार वर्ष तुमचे आयुष्य उजवावे.
जेव्हा मी हा प्रकल्प सुरू केला, तेव्हा मला एक स्टॅक आणि एक हिपचा फरक माहित नसलेलं, बिग-ओ काहीही नसलेलं, किव्हा वृक्षांचे काहीही माहित नसलेलं, किंवा ग्राफ कसे अनुवर्तन करावा ते. जर मला कोणत्याही स्थितीत सॉर्टिंग अॅल्गोरिथम कोड करायचा होता, तर मी तुम्हाला सांगू शकतो की तो खूप खराब होता. माझ्याकडून विकसित केलेल्या प्रत्येक डेटा संरचनेला भाषेतून बनवले गेले होते, आणि मला त्यांचं कसं काम करतं याचं माहित नसलं. मला कधीही मेमरी व्यवस्थापित करायची असते नाही, जर काही प्रक्रिया जी चालू होती त्याच्यावेळी "मेमरी आउट ऑफ मेमरी" चुका देतात, आणि तर मी काही मल्टीडिमेंशनल अॅरे वापरलेले होते आणि हजारों एसोसिएटिव्ह अॅरे, पण मला कधीही त्यांची संरचना सुरूसुरू करण्याची गरज नसली.
हा एक लांब प्लॅन आहे. तो तुमच्या अवधीत महिन्यां लागू शकतो. जर तुम्ही आधीच बरेच काही ओळखत असाल, तर तुम्हाला ते चांगल्या वेळेत अधिक काही नसेल.
ते कसे वापरावे
सर्व काहीच्या खाली एक आउटलाईन आहे, आणि तुम्हाला पायासाठी प्रवृत्त करण्यासाठी वस्तुंची अगदीची क्रमवारी नक्कीच उघडवायची आहे.
मी GitHubचा विशेष मार्कडाउन फ्लेवर वापरत आहे, जिथे प्रगतीसाठी कामाच्या याद्या ट्रॅक करण्यासाठी कार्य सूची आहेत.
जर तुम्हाला गिट वापरायला आवडत नसेल
या पानावर, प्रथमत: कोड बटणावर क्लिक करा, त्यानंतर "Download ZIP" वर क्लिक करा. झिप फाइल डाउनलोड करा आणि तुम्ही टेक्स्ट फाइलसह काम करू शकता.
जर तुम्ही मार्कडाउन काही समजता कोड एडिटरमध्ये उघडला असेल, तर तुम्हाला सर्व काही सुंदरपणे फॉर्मॅट केलेलं दिसेल.
जर तुम्हाला गिट वापरायला सोपं असतं
नविन शाखा तयार करण्यासाठी, तुम्हाला हे प्रमाणित करण्यासाठी, फक्त ब्रॅकेट्समध्ये x ठेवा: [x]
-
GitHub रेपोची फोर्किंग:
https://github.com/jwasham/coding-interview-university
ला जाऊन फोर्क करा बटणावर क्लिक करून. -
तुमच्या स्थानिक रेपोवर क्लोन करा:
git clone https://github.com/<तुमचे_GitHub_वापरकर्तानावा>/coding-interview-university.git cd coding-interview-university git remote add upstream https://github.com/jwasham/coding-interview-university.git git remote set-url --push upstream DISABLE # तुमचे व्यक्तिगत प्रगती मूळ रेपोवर पुश करण्यासाठी
-
बदलांची प्रगती पूर्ण केल्यानंतर सर्व बॉक्सवर X चिन्हांनी चिन्हांकित करा:
git commit -am "माझी व्यक्तिगत प्रगती चिन्हांकित केली" git pull upstream main # तुमचा फॉर्क आपडेट ठेवा, मूळ रेपोमध्ये बदलांसाठी git push # फक्त तुमच्या फोर्कमध्ये पुश करते
तुम्हाला अशा वाटत नाही की तुम्ही पर्यायी आहात
- सफळ सॉफ्टवेअर इंजिनियर तेजस्वी आहेत, परंतु अनेकांना त्यांना अनेक तेजस्वी असल्याचं असंवेदनशीलतेवर विश्वास आहे.
- खालील व्हिडिओंमध्ये तुम्हाला ह्या असंवेदनशीलतेवर नियंत्रण मिळवायला मदत करू शकतील:
व्हिडिओ संसाधनांबद्दल टीका
काही व्हिडिओंची उपलब्धता केवळ Coursera किंवा EdX वर नोंदवली जाते. ते MOOCs म्हणतात. कधी कधी क्लास सत्र चालू नसत्या असताना तुम्हाला काही महिने थांबायला लागतात, त्यामुळे तुम्हाला प्रवेश मिळत नाही.
ह्या ऑनलाइन कोर्स संसाधनांवर, विनामूल्य आणि सर्वदा उपलब्ध सार्वजनिक स्रोतांमध्ये, YouTube व्हिडिओ (आणि आता उनिव्हर्सिटी लेक्चर्स प्रियतम) चे विचार करावे ह्याचं चांगलं असेल. त्यासाठी कि लोक येथे नेहमीच अध्ययन करू शकतात, केवळ काही ऑनलाइन कोर्स चालू असताना नाही.
प्रोग्रामिंग भाषा निवडा
तुम्हाला कोडिंग साक्षात्कारांसाठी एक प्रोग्रामिंग भाषा निवडणे आवश्यक आहे, परंतु संगणक विज्ञानाच्या अवधारणांसाठी एक भाषा साठवणे आवश्यक आहे.
प्रेफरेब्ली, भाषा समान असावी, तसेच तुम्ही फक्त एकाची प्रतिष्ठा असणे आवश्यक आहे.
ह्या अभ्यास योजनेसाठी
मला अभ्यास योजना केल्यानंतर जास्तीत जास्त लष्करांसाठी मी २ भाषांचा वापर केला: C आणि Python
- C: खूप कमी स्तरावर. तुम्हाला पॉइंटर्स आणि मेमरी विभाजन / मेमरी साहित्य करण्यास मांडतो, म्हणजे तुम्ही डेटा संरचना
आणि अॅल्गोरिदमची अनुभव करता. उच्च स्तरावरील भाषांमध्ये जसे की Python किंवा Java, ते तुमच्यावरून लपवलेले आहेत. दिवसांतील कामात, हे अद्भुत आहे,
परंतु केवळ जेणेकरून तुम्ही या खाली स्थितीकिंवा अॅल्गोरिदमच्या खूप कमी स्तरावरील डेटा संरचना कसे तयार केले हे समजून घेणे अद्भुत आहे.
- C व्यापारच्या आहे. तुम्हाला पुस्तके, व्याख्याने, व्हिडिओ, सर्वजगात दरम्यान उदाहरणे दिसेल जेणेकरून तुम्ही अभ्यास करत असताना.
- The C Programming Language, 2nd Edition
- ही लहान पुस्तक आहे, परंतु ती तुम्हाला C भाषेत एक महत्त्वाची परिपूर्ण प्रतिष्ठा देईल आणि जर तुम्ही थोडी कसरत करता तर तुम्ही लवकरच उत्तम होईल. C समजल्याने तुम्हाला कसं काम करतं हे समजायला मदत करतं.
- तुम्हाला पुस्तकात खूप जास्त अगाऊ जाऊन आवश्यक नाही (किंवा त्याच्यातून संपूर्ण केले जाऊन). फक्त ह्या अंतर्गत जाऊन येत आहे की तुम्हाला सीतीत वाचणे आणि लिहिणे कशी करावे हे आत्ता तुमच्याकडून समजले जाईल.
- Python: आधुनिक आणि खूप व्याक्तिपूर्ण, मी त्याला शिकला कारण हे फक्त खूप उपयुक्त आहे आणि आपल्याला साक्षात्कारात कमी कोड लिहायला परवानगी देते.
ह्या माझी प्राधान्य. प्रियंकर तुम्ही काय करू इच्छिता, नातं.
तुम्हाला ती आवश्यक असणार नसेल, परंतु एक नवीन भाषा शिकण्यासाठी काही साइट्स आहेत:
तुमच्या कोडिंग साक्षात्कारासाठी
तुम्ही कोडिंग भागात तुम्हाला आराम असलेली भाषा वापरू शकता, परंतु मोठ्या कंपन्यांसाठी, ह्या ठिकाणी दिलेल्या भाषांमध्ये स्थिर निवड:
- C++
- Java
- Python
तुम्ही ह्या वापरू शकता, परंतु सुरुवातीत जाणून घ्या. त्यांमध्ये अवघडारे नुकसान असू शकतात:
- JavaScript
- Ruby
येथे माझं एक लेख आहे जेव्हा तुम्हाला साक्षात्कारासाठी भाषा निवडण्याबद्दल: साक्षात्कारासाठी एक भाषा निवडा. हा माझा लेख ऑरिजिनल लेख आहे ज्याचा आधार माझं पोस्ट केला गेला होता: साक्षात्कारासाठी प्रोग्रामिंग भाषा निवडणे
तुम्हाला ह्या भाषांमध्ये खूप आराम असणे आणि संज्ञान असणे आवश्यक आहे.
निवडीसाठी अधिक माहिती वाचा:
भाषा-विशिष्ट संसाधनांसाठी येथे पहा
डेटा संरचना आणि अॅल्गोरिदमसाठी पुस्तके
ह्या पुस्तकांनी कॉम्प्यूटर विज्ञानात आपले आधार रचले जाईल.
फक्त एक निवडा, ज्यात तुम्ही स्वत: आराम असेल भाषेत.
C
- Algorithms in C, Parts 1-5 (Bundle), 3rd Edition
- मूलभूत, डेटा संरचना, क्रमवार्ता, शोध, आणि ग्राफ अॅल्गोरिदम
Python
- Data Structures and Algorithms in Python
- Goodrich, Tamassia, Goldwasser यांचे
- मला ह्या पुस्तकांविषयी आवडलं. हे सर्व काही आणि अधिक कवर केलं.
- पायथनिक कोड
- माझं चमकदार पुस्तक अहवाल: https://startupnextdoor.com/book-report-data-structures-and-algorithms-in-python/
Java
तुमची निवड:
- Goodrich, Tamassia, Goldwasser
- Sedgewick आणि Wayne:
- Algorithms
- विनामूल्य Coursera कोर्स ज्याचा पुस्तकावर अध्यापन केला जातो (लेखकांद्वारे शिकवलेलं!):
C++
तुमची निवड:
- Goodrich, Tamassia, आणि Mount
- Sedgewick आणि Wayne
साक्षात्कार साजोवट पुस्तके
तुम्हाला आणखी बर्याच नकाशी करण्याची आवश्यकता नाही. खरं "क्रॅकिंग द कोडिंग इंटरव्ह्यू" किती ह्या तरी अॅल्गोरिदम बराबरीचं काही किती पर्याय खरेदी केली जाऊ शकते, परंतु मला अधिक प्रशिक्षण देण्यासाठी आणि मला आदतें आली असतात.
मी दोन्ही खरेदी केली. त्यांनी मला प्रचंड प्रशिक्षण दिलं.
- Programming Interviews Exposed: Coding Your Way Through the Interview, 4th Edition
- उत्तर C++ आणि जावा मध्ये
- विशेषत: Cracking the Coding Interviewसाठी चांगलं वार्म-अप
- खूप कठीण नाही. जेव्हा तुम्ही एक साक्षात्कारात दिसणार प्रश्नांच्या प्रमाणाच्या जास्तीत जास्त किती मजेशीर प्रश्न मिळवतात (मला काहीचं वाचलं आहे)
- Cracking the Coding Interview, 6th Edition
- उत्तर जावा मध्ये
जर आपल्याकडे अत्याधिक वेळ असेल:
एक निवडा:
- Elements of Programming Interviews (C++ version)
- Elements of Programming Interviews in Python
- Elements of Programming Interviews (Java version) - Companion Project - Method Stub and Test Cases for Every Problem in the Book
आपल्याकडे अशा चूका नका
ह्या यादीत अनेक महिन्यांच्या अंतर्गत वाढले आहे, आणि होय, ह्या यादीत काहीतरी अधिक झाले आहे.
येथे माझ्यांनी चुका केल्या आहेत त्यामुळे तुम्हाला एक चांगली अनुभवासाठी हवं. आणि तुम्ही महिन्यांच्या वेळांची जतन करेल.
1. तुम्ही सर्व काही आतापर्यंत ओळखायला असाल ते आपल्याला आत्मविश्वास आहे का?
मी आयचं व्हिडिओ पाहिलं आणि कॉपियस नोट्स घेतले, आणि महिन्यांनंतर अनेक काही मला आठवलं. मला आमच्या नोटसबद्दल 3 दिवसं वेळं लागलं, परंतु मला त्यांचं अधिक माहिती हवं नसलं.
कृपया, हे वाचा आणि तुम्हाला माझ्या चुकांचं तयारी करून घ्यायला येणार नाही.
कॉम्प्यूटर विज्ञानाचे ज्ञान राखणे.
2. फ्लॅशकार्ड्स वापरा
मी समस्या सोडण्यासाठी एक छोटं फ्लॅशकार्ड साइट बनवलं, ज्यावर मी 2 प्रकारच्या फ्लॅशकार्ड जोडवू शकतो: सामान्य आणि कोड. प्रत्येक कार्डांनी वेगवेगळी स्वरुपणं आहेत. मी मोबाइल-पहिलं वेबसाइट बनवलं, म्हणजे मी आपल्या फोन किंवा टॅबलेटवर पुनरावलोकन करू शकतो, आता कोठे आहे.
विनामूल्यसेच बनवा:
मला माझ्या फ्लॅशकार्ड साइटवर वापरण्याची शिफारस करत नाही. येथे खूप आहेत आणि अधिकांश ते उत्तररूप नसलेल्या ते तुम्हाला आवडणार नाही.
परंतु जर तुम्हाला मला ऐकायला नको, तर इथे आहे:
आणि नक्की काळजी करा की मी अत्यंतात जास्त काही कवर करत आहे. यात सर्व कुठल्या आसंतात आणि मला यात आवडते, मनोबद्धतेच्या तत्त्वांनी सामान्यतः ते वापरतात. ज्ञान गहाळ करण्यासाठी करून घेणे.
अन्किच्या फ्लॅशकार्डवर किंवा त्यातील व्हिडिओ पाहून माहिती कच्च करण्याची एक वैकल्पिक उपाय आहे. ते तुम्हाला लक्ष देण्यासाठी आहे, अन्की पुनरावलोकन प्रणाली वापरतात. ते वापरकर्ता मित्रवत, सर्व प्लेटफॉर्म्सवर उपलब्ध आहे, आणि एक क्लाउड सिंक प्रणाली असते. iOS वर $25 खर्च होते परंतु इतर प्लेटफॉर्म्सवर विनामूल्य आहे.
अन्की फॉर्मॅटमध्ये माझ्या फ्लॅशकार्ड डेटाबेस: https://ankiweb.net/shared/info/25173560 (आभार @xiewenya).
काही विद्यार्थ्यांना श्वेत जागा विचारांसह फॉर्मॅटिंग समस्या आल्या आहेत की ते खालीलप्रमाणे सुधारणे केले जाऊ शकतात: डेक उघडा, कार्ड संपादित करा, कार्ड्स क्लिक करा, "स्टाइलिंग" रेडिओ बटण निवडा, आणि "स्टाइलिंग" रेडिओ बटण निवडा, आणि त्या कार्ड क्लासला "सफेद अंतराळ: प्री;" घाला.
3. तुम्हाला कोडिंग इंटरव्यू प्रश्न करताना
ह्या विषयाच्या अध्ययनात आहत तेव्हा कोडिंग इंटरव्यू प्रश्नांचं करा.
तुम्हाला समस्यांचं समाधान करण्यास आवश्यक आहे, किंवा तुम्ही विसरलं जाऊ शकता. मी ही चूक केली.
एकदा आपल्याला एक विषय शिकला आहे, आणि तुम्ही त्यात काही पर्याय अनुभवत आहात, उदाहरणार्थ, लिंक्ड लिस्ट:
- कोडिंग इंटरव्यू पुस्तके (किंवा कोडिंग समस्या वेबसाइट, खाली दिलेल्या)
- 2 किंवा 3 प्रश्नांचा उत्तर द्या लिंक्ड लिस्टसाठी.
- पुढील शिकण्याच्या विषयात प्रवेश करा.
- नंतर, पुन्हा जाऊन आपल्याला दुसऱ्या 2 किंवा 3 लिंक्ड लिस्ट समस्यांचं उत्तर द्या.
- नवीन विषयासोबत हे करा आपल्याला प्रत्येक नवीन विषय शिकण्याच्या वेळी.
तुम्हाला तुमच्या सर्व या प्रश्नांना शिकताना समस्यांचं समाधान करत राहावं लागेल, शिकताना नंतर नाही.
तुम्हाला ज्ञानासाठी नाही, पण तुम्ही ज्ञान कसं लागू करायला तुम्हाला नोकरी मिळवण्यासाठी.
ह्यात कोडिंग समस्यांचे अनेक स्रोत आहेत, खालील लिंक्समध्ये आहेत. चालू राहा.
4. लक्ष द्या
आहे काहीतरी मोठ्या महत्त्वाच्या वेळांचं सापडतात. ध्यान आणि एकाग्रता कठीण आहेत. ते संगीत सुरू करा शब्दनिर्देश असं अनुमति आहे आणि तुम्ही काही सुस्त सुद्धा लक्षात ठेवू शकता.
तुम्हाला आपल्याला कळवू शकत नाही की
ह्या अभ्यासक्रमात असलेली प्रमुख तंत्रज्ञाने पण त्यांचा अभ्यास समाविष्ट नाहीत:
- जावास्क्रिप्ट (Javascript)
- एचटीएमएल, सीएसएस, आणि इतर फ्रंट-एंड तंत्रज्ञाने
- एसक्यूएल (SQL)
दैनिक योजना
ह्या पाठ्यक्रमात अनेक विषय आहेत. प्रत्येकाची संभाव्यतः काही दिवसं, किंवा कधी काही आणि अधिक आणि दिवसांत अवलंबू शकते. याचे तुमच्या कार्यक्रमावर निर्भर आहे.
प्रत्येक दिवस, यादीतील पुढील विषय घ्या, त्याविषयावर काही व्हिडिओ पाहा, आणि नंतर त्या डेटा संरचनेचे किंवा ऍल्गोरिदमचे संवाद तुमच्या निवडलेल्या भाषेत लिहा.
तुमचं कोड येथे पाहू शकता:
तुम्हाला प्रत्येक ऍल्गोरिदम याद ठेवण्याची गरज नाही. तुम्हाला त्याची समज येण्यासाठी पर्याय असणे आवश्यक आहे किंवा तुम्ही स्वतःचं संवाद लिहू शकता.
कोडिंग प्रश्न अभ्यास
आम्हाला ह्याचं का आवडतं? मी साक्षात्कारासाठी तयार नाही.
तुम्हाला कोडिंग समस्यांचा अभ्यास करण्याची गरज का आहे:
- समस्या स्वीकृती, आणि कुठल्या सर्वोत्तम डेटा संरचनांसाठी आणि ऍल्गोरिदम्समध्ये कसं फिट होईल हे ओळखणे
- समस्येसाठी आवश्यक अटी संग्रहण करणे
- साक्षात्कारात आपल्या मार्गाचं बोलणं, जसं तुम्ही साक्षात्कारात करेल
- कॉम्प्यूटरवर नक्कीचं व्हायटबोर्ड किंवा कागदावर कोड लिहणे, कॉम्प्यूटरवर नाही
- तुमच्या सोडलेल्या संदर्भांसाठी समय आणि स्थान जटिलता येण्याचे कल्पना करणे (मोठं-ओ खाली पहा)
- तुमच्या निवडलेल्या सोडांची किंवा ऍल्गोरिदमची टेस्टिंग करणे
साक्षात्कारातील पद्धतीसाठी एक योग्य, संवेदनशील समस्या-सोडवणे साठवण्यात येतं. तुम्ही ज्या कोडिंग साक्षात्कारात बुक्स मधून मिळवता, त्यापुढे ह्या प्रशिक्षणांचं अद्भुत आरंभ आहे: ऍल्गोरिदम डिझाइन कॅनव्हस
कोड व्हायटबोर्ड किंवा कागदावर लिहा, कॉम्प्यूटरवर नक्कीचं वाचवा. काही उदाहरणांसह परीक्षण करा. नंतर तो टाइप करा आणि ते कॉम्प्यूटरवर परीक्षण करा.
जर तुम्हाला घरात व्हायटबोर्ड नसेल, तर आर्ट स्टोरमधून एक मोठं ड्रॉइंग पॅड घ्या. तुम्हाला सोफावर बसुन अभ्यास करायचं आहे. हा माझा "सोफा व्हायटबोर्ड" आहे. मला फोटोत आढळवून दिलं. जेव्हा तुम्ही कलम वापरता, तुम्हाला मिटवायला इच्छित असेल. वेगवेगळ्या गोष्टींना जलगं झालं. मी कलम आणि मिटवा वापरतो.
कोडिंग प्रश्न अभ्यास इतरांच्या प्रोग्रामिंग समस्यांच्या उत्तर मेमराइझ करण्याबद्दल नसतं.
कोडिंग समस्या
तुमचं कोडिंग साक्षात्कार पुस्तके विसरू नका इथे.
समस्या सोडणे:
कोडिंग साक्षात्कार प्रश्न व्हिडिओ:
- IDeserve (88 व्हिडिओ)
- टुशार रॉय (5 प्लेलिस्ट)
- समस्या समाधानांच्या पूर्ण व्हॉकथ्रूसाठी उत्तम
- निक व्हाइट - लीटकोड समाधान (187 व्हिडिओ)
- समाधान आणि कोड चे चांगले स्पष्टीकरण
- तुम्हाला थोडं वेळ मध्ये अनेक पाहू शकता
- फिशरकोडर - लीटकोड समाधान
चॅलेंज / अभ्यास संकेत:
- लीटकोड
- माझं आवडतं कोडिंग समस्या संकेत. तुमच्याला साक्षात्कारासाठी १-२ महिने तयारीसाठी पैसे वसूल आहेत.
- कोड वॉकथ्रूसाठी निक व्हाइट आणि फिशरकोडर व्हिडिओ पहा.
- हॅकरँक
- टॉपकोडर
- कोडफोर्स
- कोडिलिटी
- गीक्स फॉर गीक्स
- ऍल्गोएक्सपर्ट
- गूगल इंजिनिअर्सने तयार केलेला, हे तुमच्या कौशल्ये तयार करण्यासाठी सर्वोत्तम स्रोत आहे.
- प्रोजेक्ट युलर
- खूप माहितीसंवेदनशील आहे, आणि कोडिंग साक्षात्कारासाठी खूप उपयुक्त नसते
प्रारंभ करूया
ठीक आहे, खूप बोलणं, लेकी शिकूया!
परंतु तुम्हाला शिकताना उपरोक्त कोडिंग समस्यांसह सुरू करण्याचं विसरू नका!
ऍल्गोरिदमिक कंप्लेक्सिटी / बिग-ओ / असिंप्टोटिक विश्लेषण
- येथे काही अमलात घेण्याची गरज नाही, तुम्ही केवळ व्हिडिओ पहा आणि टीके काढा! वाह!
- येथे खूप व्हिडिओ आहेत. तुम्हाला समजताना पर्यंत पर्याप्त व्हिडिओ पहायला लागेल. तुम्ही नेहमी परत येऊ शकता आणि पुनरावलोकन करू शकता.
- जर तुम्हाला हा सर्व गणित समजत नसेल, तर घाबरू नका.
- तुम्हाला केवळ ऍल्गोरिदमचं कंप्लेक्सिटी बिग-ओ च्या प्रकारात कसं व्यक्त करायचं हे समजून घ्यायचं आहे.
- हार्वर्ड सीएस50 - असिंप्टोटिक नोटेशन (व्हिडिओ)
- बिग ओ नोटेशन (सामान्य जलद ट्यूटोरियल) (व्हिडिओ)
- बिग ओ नोटेशन (आणि ओमेगा आणि थेटा) - सर्वात उत्तम गणितीय स्पष्टीकरण (व्हिडिओ)
- स्किना (व्हिडिओ)
- यूसी बर्कली बिग ओ (व्हिडिओ)
- अमॉर्टिज्ड विश्लेषण (व्हिडिओ)
- टॉपकोडर (पुनरावलोकन नियमन आणि मास्टर थिओरेम समाविष्ट):
- चीट शीट
- [पुनरावलोकन] ऍल्गोरिदम विश्लेषण (प्लेलिस्ट) १८ मिनिटांत (व्हिडिओ)
वेगवेगळं नसेल आणि.
तुम्हाला "क्रॅकिंग द सीडी इंटर्व्ह्यू" असल्यास, त्याच्या एका अध्यायात ह्या विषयावर आहे, आणि शेवटी त्यात विविध ऍल्गोरिदमचं क्रमसंबंधी रनटाईम कंप्लेक्सिटी ओळखून पाहण्याची क्षमता असल्याचं काहीतरी चाचणीचं आहे. हे एक चांगले पुनरावलोकन आणि चाचणी आहे.
-
डेटा संरचना
-
अॅरे
- अॅरे बद्दल:
- एक वेक्टर अॅरे (परिवर्तनशील अॅरे स्वत:चं रेसायजिंगसह):
- अॅरे आणि पॉईंटर्स वापरून कोडिंग करण्याची अभ्यास करा, आणि निर्देशांकांचा वापर करून सूचकांक करा.
- नवीन कच्चे डेटा अॅरे नेहमीची आता आवंटित संदर्भ
- अंत: एंट अॅरे आवंटित करू शकता, केव्हा त्याचे वैशिष्ट्य वापरू शकत नाहीत
- १६सह प्रारंभ करा, किंवा प्रारंभीक अंक जास्त असल्यास, १६, ३२, ६४, १२८ च्या सकलांमध्ये वापरा
- साईज() - आयटमची संख्या
- कॅपॅसिटी() - तो आयटम कित्येक ठाऊक ठेवू शकतो
- एस_खाली()
- अँट(संदर्भ) - दिलेल्या संदर्भातील आयटम परत करतो, जर संदर्भ अंतर्दृष्टीत नसेल तर वायरला जातो
- पुश(आयटम)
- इन्सर्ट(संदर्भ, आयटम) - संदर्भातील आयटममध्ये आयटम जोडते, त्या संदर्भाच्या मूल्य आणि परतलेल्या आयटमांच्या पाठीवर जातो
- प्रिपेंड(आयटम) - उपरी संदर्भात इन्सर्ट वापरू शकता
- पॉप() - शेवटीच्या पासून काढतो, मूल्य परत करतो
- डिलीट(संदर्भ) - दिलेल्या संदर्भातील आयटम काढतो, परतलेल्या सर्व आयटम डावीकडे सायकल करतो
- रिमूव(आयटम) - मूल्य बघतो आणि त्याच्या मूल्याच्या संदर्भातील प्रथम आयटम काढतो (जर एकाधिक स्थानांमध्ये असेल, तरीही)
- फिंड(आयटम) - मूल्य बघतो आणि त्यामध्ये पहिला संदर्भातील स्थान परत करतो, जर नसेल तर -१
- रिसाईझ(नवीन_कॅपॅसिटी) // खाजगी कार्य
- आपल्याला कॅपॅसिटी पर्यंत पोचण्यासाठी जर आपल्याला पर्याय होतं, तर दगडी किती वेळा
- काढत असल्यास एकाधिक पॉप करण्यासाठी, जर साईज कॅपॅसिटीची चौथी असेल तर, अर्धे कितीवर्षी त्याची आकारिक करणे
- काळ
- अॅंडिंगला विनिमेष करण्यासाठी O(1) (अधिकार्यस्थवादी करण्यासाठी जागा आवंटन करण्यासाठी), संदर्भ, किंवा अद्यतन करण्यासाठी
- इतर क्षेत्रात डाळणे / काढणे करण्यासाठी O(n)
- जागा
- मेमोरीत एकत्रित, म्हणजे संबंध उत्कृष्टता मदत करते
- आवश्यक जागा = (अॅरे क्षमता, ज्याप्रमाणे >= n असेल) * आयटमची आकारे, पण किंवा जर २एनची आहे, तरीही O(n)
-
लिंक्ड लिस्ट्स
- वर्णन:
- सी कोड (व्हिडिओ) - पूर्ण व्हिडिओ नाही, फक्त नोड स्ट्रक्चर आणि मेमोरी आवंटनबद्दल कितीतरी भागांच्या बद्दल
- लिंक्ड लिस्ट बनावण्याचा प्रयत्न किंवा आणखी विचारांसाठी संदर्भ:
- साईज() - लिस्टमध्ये डेटा घटकांची संख्या परत करते
- एम्प्टी() - रिक्त असल्यास true परत करतो
- व्हॅल्यू_अँट(संदर्भ) - प्रथमाच्या आयटमचे मूल्य परत करतो (पहिल्यासाठी ०वरून सुरू करा)
- पुश_फ्रंट(मूल्य) - लिस्टच्या सुरूतीला एक आयटम जोडतो
- पॉप_फ्रंट() - फ्रंट आयटम काढतो आणि त्याचा मूल्य परत करतो
- पुश_बॅक(मूल्य) - शेवटीला एक आयटम जोडतो
- पॉप_बॅक() - शेवटीचा आयटम काढतो आणि त्याचा मूल्य परत करतो
- फ्रंट() - फ्रंट आयटमचा मूल्य मिळवा
- बॅक() - शेवटीच्या आयटमचा मूल्य मिळवा
- इन्सर्ट(संदर्भ, मूल्य) - संदर्भात मूल्य अंक इन्सर्ट करते, म्हणजे त्या संदर्भाच्या नवीन आयटमातील अंक दिलेल्या आयटमाच्या संदर्भात जातो
- इरेस(संदर्भ) - दिलेल्या संदर्भातील नोड काढतो
- व्हॅल्यूनफ्रॉम_एंड(न) - न थेट आयटमाचा मूल्य परत करतो
- रिव्हर्स() - लिस्ट उलटते
- रिमूव_वॅल्यू(मूल्य) - लिस्टमध्ये त्याच्या मूल्यानुसार प्रथम आयटम काढतो
- डब्ल्यू-लिंक्ड लिस्ट
- वर्णन (व्हिडिओ)
- कोणत्याही अट लागत नाही
-
स्टॅक
- स्टॅक (व्हिडिओ)
- [पुनरावलोकन] ३ मिनिटात स्टॅक्स (व्हिडिओ)
- अॅरे सह अॅरे वापरणे सोपं आहे
-
क्यू
- क्यू (व्हिडिओ)
- सर्कुलर बफर / एफआयएफओ
- [पुनरावलोकन] ३ मिनिटात क्यू (व्हिडिओ)
- लिंक्ड-लिस्ट वापरून कार्यान्वयन करा, प्लॅनर संदर्भाने:
- इन्क्यू(मूल्य) - पायास एक स्थानावर मूल्य जोडतो
- डेक्यू() - खाली होताना मूल्य परत करतो आणि किमान वेळी जोडलेला पायावरतीत मूल्य काढतो (फ्रंट)
- एंप्टी()
- एक नियमित आकाराच्या अॅरे वापरून कार्यान्वयन करा:
- इन्क्यू(मूल्य) - उपलब्ध संचयाच्या शेवटीला आयटम जोडतो
- डेक्यू() - मूल्य परत करतो आणि किमान वेळी जोडलेला आयटम काढतो
- एंप्टी()
- फुल()
-
हॅश टेबल
-
व्हिडिओ:
- चेनिंगसह एचिंग (व्हिडिओ)
- टेबल डबलिंग, कारप-रॅबिन (व्हिडिओ)
- ओपन अॅड्रेसिंग, क्रिप्टोग्राफिक हॅशिंग (व्हिडिओ)
- पायकॉन 2010: माईटी डिक्शनरी (व्हिडिओ)
- पायकॉन 2017: डिक्शनरी इव्हेन मायटीअर (व्हिडिओ)
- (उन्नत) यादृच्छिकीकरण: युनिव्हर्सल आणि परिपूर्ण हॅशिंग (व्हिडिओ)
- (उन्नत) परिपूर्ण हॅशिंग (व्हिडिओ)
- [पुनरावलोकन] ४ मिनिटात हॅश टेबल्स (व्हिडिओ)
-
ऑनलाईन कोर्सेस:
-
अॅरे वापरून लिनिअर प्रोबिंग वापरून कार्यान्वित करा
- हॅश(k, m) - m हॅश टेबलचा आकार आहे
- जोडणे(की, मूल्य) - जर की आधीच अस्तित्वात असेल, मूल्य सुधारित करा
- अस्तित्व आहे(की)
- प्राप्त(की)
-
अधिक ज्ञान
-
बायनरी शोध
- बायनरी शोध (व्हिडिओ)
- बायनरी शोध (व्हिडिओ)
- विवर
- रूपरेखा
- [समीक्षा] बायनरी शोध 4 मिनिटांत (व्हिडिओ)
- कार्यान्वित करा:
- क्रमवार सादर केलेल्या पूर्णांकांच्या ऍरेअयात बायनरी शोध
- पुनरावृत्ती वापरून बायनरी शोध
-
बिटवायज क्रिया
- बिट्स चीट शीट
- आपल्याला (2^1 ते 2^16 आणि 2^32 पर्यंत 2च्या अनेक घातांची माहिती असावी)
- & | ^ ~ >> << सह बिट्स व्यवस्थापनाची खुपच चांगली समज मिळाली पाहिजे
- 2s आणि 1s पूरक
- सेट बिटची गणना
- मूल्ये बदला:
- पूर्णांक मान:
- बिट्स चीट शीट
झाडे
-
झाडे - परिचय
- झाडांचा परिचय (व्हिडिओ)
- झाड ट्रावर्सल (व्हिडिओ)
- BFS(ब्रेड्थ-फर्स्ट सर्च) आणि DFS(डेप्थ-फर्स्ट सर्च) (व्हिडिओ)
- BFS नोट:
- स्तर क्रम (BFS, क्यूच वापरून)
- काळजीच्या समय: O(n)
- जागा काळजी: सर्वोत्तम: O(1), वास्तविक: O(n/2)=O(n)
- DFS नोट:
- काळजीच्या समय: O(n)
- जागा काळजी: सर्वोत्तम: O(log n) - झाडाचे सरासरी उंची वास्तविक: O(n)
- inorder (DFS: डावी, स्वयं, उजवी)
- postorder (DFS: डावी, उजवी, स्वयं)
- preorder (DFS: स्वयं, डावी, उजवी)
- BFS नोट:
- [समीक्षा] 4 मिनिटांत ब्रेड्थ-फर्स्ट सर्च (व्हिडिओ)
- [समीक्षा] 4 मिनिटांत डेप्थ-फर्स्ट सर्च (व्हिडिओ)
- [समीक्षा] झाड ट्रावर्सल (प्लेलिस्ट) 11 मिनिटांत (व्हिडिओ)
-
बायनरी शोध झाडे: BSTs
- बायनरी शोध झाड समीक्षा (व्हिडिओ)
- परिचय (व्हिडिओ)
- MIT (व्हिडिओ)
- C/C++:
- बायनरी शोध झाड - C/C++ मध्ये कार्यान्वितीकरण (व्हिडिओ)
- BST कार्यान्विती - स्टॅक आणि हिपमध्ये स्मृति काळजी (व्हिडिओ)
- बायनरी शोध झाडातील किमान आणि जास्त मूल्य शोधा (व्हिडिओ)
- एक बायनरी झाडाची उंची कसे शोधायची (व्हिडिओ)
- बायनरी झाडाचा ट्रावर्सल - स्थिरता-प्रथम आणि डेप्थ-प्रथम युक्तियां (व्हिडिओ)
- बायनरी झाड: स्तर क्रम ट्रावर्सल (व्हिडिओ)
- बायनरी झाडाचा ट्रावर्सल: प्रीऑर्डर, इनऑर्डर, पोस्टऑर्डर (व्हिडिओ)
- बायनरी शोध झाड आहे का नाही ते तपासा (व्हिडिओ)
- बायनरी शोध झाडातून मूल्य काढा (व्हिडिओ)
- बायनरी शोध झाडातील आगामी स्वयं (व्हिडिओ)
- कार्यान्वित:
- insert // झाडात मूल्य घाला
- get_node_count // संग्रहित मूल्यांची कोणतीही संख्या मिळवा
- print_values // मूल्यांचा झाडातून प्रिंट करा, किमान ते जास्त
- delete_tree
- is_in_tree // दिलेल्या मूल्याला झाडात असल्यास त्रुटी आहे आपल्याला true कळवा
- get_height // नोड्यांमध्ये उंची परत मिळवा (एकचा नोडचा उंची 1)
- get_min // झाडात संग्रहित किमान मूल्य मिळवा
- get_max // झाडात संग्रहित किमान मूल्य मिळवा
- is_binary_search_tree
- delete_value
- get_successor // दिलेल्या मूल्यानंतर झाडातील आगामी स्वयं मिळवा, कोणतेही नसल्यास -1
-
हिप / प्रायरिटी क्यू / बायनरी हिप
- झाड म्हणून विज्ञान केले जाते, परंतु सामान्यतः संग्रह (एरे, लिंक्ड सूची) मध्ये लीनियर आहे
- हिप
- परिचय (व्हिडिओ)
- बायनरी झाड (व्हिडिओ)
- झाड उंची टिप (व्हिडिओ)
- मूल्यांची बुनणी (व्हिडिओ)
- पूर्ण बायनरी झाड (व्हिडिओ)
- उपनामकोड (व्हिडिओ)
- हिप क्रमवार क्रमणी (व्हिडिओ)
- हिप क्रमवार (व्हिडिओ)
- हिप निर्माण (व्हिडिओ)
- MIT: हिप आणि हिप क्रमवार (व्हिडिओ)
- CS 61B लेक्चर 24: प्रायरिटी क्यू (व्हिडिओ)
- लीनियर वेळ बनवा (मॅक्स-हिपमध्ये)
- [समीक्षा] हिप (प्लेलिस्ट) 13 मिनिटांत (व्हिडिओ)
- एक मॅक्स-हिपसाठी कार्यान्वित:
- insert
- sift_up - insert साठी आवश्यक
- get_max - त्याच्यापासून माझ्या वस्तू मिळते, ते काढून टाकून नको
- get_size() - संग्रहित घटकांची संख्या परत द्या
- is_empty() - सत्रात कोणतेही घटक असल्यास त्रुटी द्या
- extract_max - माझ्या घटकापासून माझ्या घटक मिळते, तो काढून टाकून नको
- sift_down - extract_max साठी आवश्यक
- remove(x) - स्थिती x पासून वस्तू काढा
- heapify - घटकांच्या एक संचयापासून एक हिप तयार करा, heap_sort साठी आवश्यक
- heap_sort() - एक क्रमरहित संचय घेऊन तो एक क्रमरहित संचय बनवा
छांटणी
-
नोट्स:
- सॉर्ट्स अमल करा आणि प्रत्येकाच्या सर्वोत्तम/अत्यधिक, सरासरी संघटनाची कसे आहे हे जाणून घ्या:
- बबल सॉर्ट करू नका - तो वाईट आहे - O(n^2), केवळ जेम्हाने n <= 16 असल्यास
- सॉर्टिंग अल्गोरिदम्स मध्ये स्थिरता कोणत्या आहेत? ("क्विक्सॉर्ट स्थिर आहे का?")
- कोणत्या अल्गोरिदम्स कस्टोडीत वापरू शकतात? कोणत्या अॅरे वापरू शकतात? कोणत्या अॅन्ड बोथ?
- मला एक लिंक्ड लिस्ट सॉर्ट करण्याचं सांगणं शक्य नाही, परंतु मर्ज सॉर्ट संभव आहे.
- मर्ज सॉर्ट फॉर लिंक्ड लिस्ट
- सॉर्ट्स अमल करा आणि प्रत्येकाच्या सर्वोत्तम/अत्यधिक, सरासरी संघटनाची कसे आहे हे जाणून घ्या:
-
हीप सॉर्टसाठी, खालील हीप डेटा संरचना पहा. हिप सॉर्ट म्हणजे चांगलं आहे, परंतु थेट नसलेलं
-
UC Berkeley:
-
मर्ज सॉर्ट कोड:
-
क्विक सॉर्ट कोड:
-
कार्यान्वित करा:
- मर्जसॉर्ट: O(n log n) औसत आणि अत्यधिक चणजी
- क्विकसॉर्ट O(n log n) औसत चणजी
- सेलेक्शन सॉर्ट आणि इन्सर्शन सॉर्ट दोन्ही O(n^2) औसत आणि अत्यधिक चणजी
- हिप सॉर्टसाठी, खालील हिप डेटा संरचना पहा
-
आवश्यक नाही, परंतु मी त्यांना शिफारस करतो:
सारांशात, येथे असलेल्या १५ सॉर्टिंग अल्गोरिदम्सची एक दृश्यात्मक प्रतिनिधीत्व केली आहे. जर आपल्याला या विषयावर अधिक माहिती आवश्यक असेल, तर "कितीही विषयांवर अतिरिक्त माहिती" मध्ये "सॉर्टिंग" विभाग पहा
ग्राफ
कंप्यूटर विज्ञानात कोणत्याही समस्या प्रतिस्थापित करण्यासाठी ग्राफ वापरले जाऊ शकतात, म्हणून ह्या विभागात तोड, कळवणे आणि क्रमवारीस असे लांब असतात.
-
नोट:
- मेमोरीमध्ये ग्राफ प्रतिनिधित्व करण्याचे ४ मूल विधान आहेत:
- ऑब्जेक्ट्स आणि पॉईंटर्स
- परिसराचे संबंधचित्र
- अजेसन्सी लिस्ट
- अजेसन्सी मॅप
- प्रत्येक प्रतिनिधित्वाची आपल्याला ओळखा आणि त्याचे फायदे आणि दुष्करता
- BFS आणि DFS - त्यांची संगणनात्मक जटिलता, त्यांच्या सूट, आणि त्यांना वास्तविक कोडमध्ये कसे कार्यान्वित करायचे याची ओळख असल्याचे
- प्रश्न केल्यावर, पहिल्यांसाठी ग्राफ-आधारित सोड शोधा, नंतर वळण
- मेमोरीमध्ये ग्राफ प्रतिनिधित्व करण्याचे ४ मूल विधान आहेत:
-
MIT(व्हिडिओ):
-
स्कीना व्याख्यान - महान परिचय:
- CSE373 2020 - लेक्चर 10 - ग्राफ डेटा संरचना (व्हिडिओ)
- CSE373 2020 - लेक्चर 11 - ग्राफ वर्तन (व्हिडिओ)
- CSE373 2020 - लेक्चर 12 - डेप्थ फर्स्ट सर्च (व्हिडिओ)
- CSE373 2020 - लेक्चर 13 - किमी स्पॅनिंग ट्रीज (व्हिडिओ)
- CSE373 2020 - लेक्चर 14 - किमी स्पॅनिंग ट्रीज (सुरू) (व्हिडिओ)
- CSE373 2020 - लेक्चर 15 - ग्राफ अल्गोरिदम (टेलीमोठ टू) (व्हिडिओ)
-
ग्राफ (पुनरावलोकन आणि अधिक):
- ६.००६ एकट्यांचा सर्वोत्तम मार्ग समस्या (व्हिडिओ)
- ६.००६ डायक्स्ट्रा (व्हिडिओ)
- ६.००६ बेल्मन-फॉर्ड (व्हिडिओ)
- ६.००६ डायक्स्ट्रा वेगवेगळ्या (व्हिडिओ)
- अडुनी: ग्राफ अल्गोरिदम I - टोपोलॉजिकल सॉर्टिंग, किमी स्पॅनिंग ट्रीज, प्रिम्स अल्गोरिदम - लेक्चर 6 (व्हिडिओ)
- अडुनी: ग्राफ अल्गोरिदम II - DFS, BFS, क्रस्कल्स अल्गोरिदम, युनियन फाइंड डेटा संरचना - लेक्चर 7 (व्हिडिओ)
- अडुनी: ग्राफ अल्गोरिदम III: किमी स्पॅनिंग - लेक्चर 8 (व्हिडिओ)
- अडुनी: ग्राफ अल्गोरिदम IV: भौमिती अल्गोरिदम्सकरणासाठी परिचय - लेक्चर 9 (व्हिडिओ)
- CS 61B 2014: वेटेड ग्राफ (व्हिडिओ)
- लालाच अल्गोरिदम्स: किमी स्पॅनिंग ट्री (व्हिडिओ)
- स्ट्रॉन्ग्ली कनेक्टेड कॉम्पोनेंट्स कोसराजूचा अल्गोरिदम ग्राफ अल्गोरिदम (व्हिडिओ)
- [पुनरावलोकन] सर्वोत्तम मार्ग अल्गोरिदम (playlist) १६ मिनिटांमध्ये (व्हिडिओ)
- [पुनरावलोकन] किमी स्पॅनिंग ट्री (playlist) ४ मिनिटांमध्ये (व्हिडिओ)
-
पूर्ण Coursera कोर्स:
-
मी अमला करेन:
- अजेसन्सी लिस्टसह DFS (आवृत्तीद्वारे)
- अजेसन्सी लिस्टसह DFS (स्टॅकसह आवृत्तीद्वारे)
- अजेसन्सी मॅट्रिक्ससह DFS (आवृत्तीद्वारे)
- अजेसन्सी मॅट्रिक्ससह DFS (स्टॅकसह आवृत्तीद्वारे)
- अजेसन्सी लिस्टसह BFS
- अजेसन्सी मॅट्रिक्ससह BFS
- एकट्यांच्या सर्वोत्तम मार्ग (डायक्स्ट्रा)
- किमी स्पॅनिंग ट्री
- DFS-आधारित अल्गोरिदम (वरील Aduni व्हिडिओ पहा):
- सायकलासाठी तपासा (तोपोलॉजिकल सॉर्टिंगसाठी आम्ही सायकलाची तपासणी सुरू करण्यापूर्वी सायकल तपासणे आवश्यक आहे, कारण आम्ही सुरू करण्यापूर्वी सायकलाची तपासणी करण्याची तपासणी करीत आहोत)
- तोपोलॉजिकल सॉर्ट
- ग्राफमध्ये कनेक्टेड संघटनांची संख्या काउंट करा
- कड़क संघटनांची सूची
- बायपार्टाईट ग्राफसाठी तपासा