Programcıların yazılı test görüşmeleri için en sevdikleri algoritma, nasıl yapılır?

Yazar | Huang Xiaoxie

Editör | Tu Min

Bu makalenin zihin haritası

Bir algoritma nedir

En son yeni bir programcı olarak veri yapısını nasıl öğreneceğimizle ilgili bir makalemiz vardı. Aslında veri yapısı ve algoritmalar yakından ilişkilidir. Neden böyle söylüyorsunuz, çünkü veri yapısının kendisi sadece bir taşıyıcı ve veri Yapının tepesinde fonksiyon ve çıktı değeri üreten şeyler aslında algoritmalardır.

Örneğin, veri yapısındaki dizi, görünüşte çok basit bir veri yapısı, DFS ve BFS gibi dinamik programlama, dizi algoritmaları, ikili ağaç algoritmaları vb. Gibi birçok karmaşık algoritmayı destekleyebilir. Öyleyse algoritma tam olarak nedir, resmi tanıtıma bir göz atalım.

Baidu Ansiklopedisi'nin tanıtımına göre, Algoritma (Algoritma), problem çözme şemasının doğru ve eksiksiz bir tanımını, problemi çözmek için bir dizi açık talimatı ifade eder ve algoritma, problemi çözmenin strateji mekanizmasını tanımlayan sistematik bir yöntemi temsil eder. Yani belli bir standart girdi için sınırlı bir süre içerisinde gerekli çıktıyı elde etmek mümkündür. Bir algoritmanın artıları ve eksileri, uzay karmaşıklığı ve zaman karmaşıklığı ile ölçülebilir.

Aslında, bir algoritmanın özü size bir dizi girdi vermek ve ardından hesaplamalardan sonra size bir dizi çıktı vermektir.Bu nedenle, algoritmalar insanların soyut sorunları somutlaştırarak ve bir sorunu diğerine dönüştürerek birçok sorunu çözmelerine yardımcı olur.

Algoritmanın N aşamasını bilin

Algoritmik sorularla ilk karşılaştığımda, lisansüstü giriş sınavları için veri yapısını incelerken o zamanlar gördüğüm algoritmik sorular aslında bir dizideki iki öğeyi değiştirmek ve iki bağlantılı listeyi birleştirmek gibi çok basit sorulardı. Bir oldu ama benim için zaten çok zordu O zamanlar sözde kodun ne olduğunu bile anlamadım.

Algoritmaları ikinci kez öğrendiğimde, lisansüstü okulda staj ararken her zaman algoritma bilgisi üzerine bazı araştırmalar oldu, bu algoritma soruları veri yapısını kendi kendime öğrendiğim zamankinden daha zor.Örneğin siz açıklayalım. Hızlı sıralama süreci veya ikili arama süreci, çünkü telefon görüşmelerinin çoğu genellikle çok karmaşık değildir.

Algoritmalar hakkında öğrendiğim üçüncü şey, algoritmalar konusunda son derece talepkar olan Toutiao gibi şirketlerle yapılan görüşmelerden sonraydı. O zamanlar, bu tür bir şirketin algoritmik görüşmelerinin zorluğunu yeterince bilmiyordum. Algoritmik sorular hazırlamadan görüşmeye gittim. Toutiao diğer şirketler gibi değildi ve hiçbir şekilde sadece hızlı sıralama gibi basit algoritmik sorular sormak değildi. Bunun yerine, bunu yapmanız için doğrudan bir BFS veya DFS çıkarır ve bu genellikle birden fazla sorudur. Sadece röportaj sırasında soruyu yarım saat okudum ve hiçbir şey yazmadım ki bu çok utanç verici.

Algoritmaları dördüncü kez öğrendim, bazı şirketlerden yazılı bir test yaptıktan sonra. Yazılı test algoritması soruları ile karşılaştırıldığında, görüşme algoritması soruları neredeyse önemsizdir.Her halükarda, görüşme soruları hala bazı klasik algoritmalardır. Teklifin ve LeetCode'un basit veya orta dereceli sorularını çözebilirsiniz, ancak yazılı test soruları gayet iyi. Mutlaka değil, soruları yazan kişilerin tuhaf fikirleri vardır ve çoğu zaman çözümler de tuhaftır. Genel olarak, yazılı algoritma sorularının zorluğu, özellikle algoritmalar konusunda anormal gereksinimleri olan Bytedance gibi şirketler için genellikle en yüksek seviyededir.Temel olarak, algoritma sorularının hiçbiri yazılamaz.

Algoritma öğrenmeye giden yol

Algoritma öğrenme yolum sorunsuz olmamasına rağmen, BAT fabrikasına girmek istersem algoritma kesinlikle iyi değil. Bu nedenle, her aşamadaki algoritma problemleriyle başa çıkabilmem için yukarıdaki her aşamanın problemleri için bazı ilgili öğrenme programları formüle ettim.

Veri Yapıları ve Algoritmalar

Veri yapısının seyri aslında birçok durumda bizim algoritma aydınlanma kursumuzdur.Lisansüstü giriş sınavında inceledim.Kullanılan ders kitabı "Tianqin Veri Yapısı" idi. Ancak lisansüstü giriş sınavı yapmayan öğrenciler için daha pek çok şey olduğunu düşünüyorum. "Dahua Veri Yapısı" gibi iyi kitaplara başvurabilirsiniz.Öğrenme veri yapısı, öğrenme algoritmasının temelidir.Örneğin, veri yapısını nasıl öğreneceğinize gelince, geri dönün ve son makalemizi okuyun ve bir veya iki tane öğrenebilirsiniz.

Doğrudan teklif

Veri yapısının temelini oluşturduktan sonra, en azından algoritma sorularının cevaplarına baktığınızda kabaca anlayabilirsiniz. Ancak veri yapısındaki algoritmalar genellikle yeterli değildir. "Kılıç Parmak Teklifi" kitabındaki algoritmanın genellikle yazılı röportajlarda test edilen içerik olduğunu anladığınızda ve ardından bu kitaptaki konuların zorluğuna baktığınızda işlerin basit olmadığını göreceksiniz.

Veri yapısı ve algoritmalar hakkında çok az bilgisi olan öğrenciler için doğrudan teklif vermek zordur Sonuçta, daha önce birçok sorunun çözümünü hiç görmediniz ve cevapları okuduktan sonra bazı soruları kısa sürede unutacaksınız.

Aslında, bu kitaptaki soruların çoğu özellikle karmaşık algoritmalar kullanmıyor, ancak ilk defa birçok soru türü görmüş olabilirsiniz, bu konuda kısayol yok. Şu anda yapabileceğiniz şey, daha fazla soru sormak ve kitabı birkaç kez okumaktır ve bu kitaptaki algoritmalara hakim olarak görülmeden önce soruları gerçekten kendiniz yazabilirsiniz.

Yazılı test sorusu seviyesinin algoritması nasıl öğrenilir

Şimdi Jianzhi teklifini okuduğuma göre, yazılı test sorusu seviyesinin algoritmasını doğrudan öğrenmeye başlayabilir miyim? Bir dakika, sana bir bebek göstereceğim. Aslında tekliflere atıfta bulunan algoritmaların çoğu hala veri yapısı algoritmaları kapsamındadır.Günümüzün yazılı test görüşme soru bankasında hala birçok klasik algoritma vardır.Bu algoritma soruları sadece LeetCode'da kullanılabilir. .

Örneğin, dinamik programlama, önce derinlik, genişlik, geri izleme algoritmaları, vb. Bu tür algoritmik problemler kendi başınıza düşünülemez çünkü bu problemlerin arkasında daha önce görmediğiniz bazı klasik algoritmalar ve problem çözme fikirleri vardır. Kafanı kırmak istiyorsan, bunu düşünmek imkansız.

Ve bu algoritmalar için daha önce hiç uygun bir öğrenme yöntemi bulamadım, her zaman doğuda bir çekiç, batıda bir çubuk kullanıyorum ve bazı parçalanmış makalelerden öğreniyorum. Daha sonrasına kadar daha zor klasik algoritmaları tanıtan ve açıklayan "Algorithm Graphic" ve "Aha Algorithm" gibi temel ve iyi algoritma kitaplarını gördüm Tabii ki hala birçok algoritma meraklısı var. Algoritmaları öğrenmek için beş dakikalık algoritma animasyonu ve programcı Xiaohui'nin komik algoritması gibi bu algoritmalardan bazılarını paylaşmak iyi örneklerdir.

LeetCode ve gerçek soruları alın

Son adım ve belki de en kritik adım, algoritmik soru bankasının en yüksek salonu olan LeetCode'a girmektir.Birçok öğrenci, özellikle büyük internet şirketlerine girmek isteyenler bu web sitesini duymuş olmalı, bu bir zorunluluktur. Yapacağım.

LeetCode'un soru bankasında pek çok soru var, ancak aslında sadece 150 soru yazdım. Soruları tamamlamak için bir LeetCode soru kılavuzunu takip ettim. Ayrıntılar için lütfen şu adrese bakın: https://github.com/h2pl/leetcode, O zamanlar, sık sorulan birçok soruyu tazeledim. Aslında, LeetCode'un sorularını 2-3 kez taramak genellikle daha güvenilirdir.Orijinal soruyu gördüğünüzde, doğru yapabildiğinizden emin olun.

Yıllar boyunca gerçek yazılı test sorularından bahsedelim. Günümüzde birçok İnternet şirketinin yazılı test görüşmeleri Niuke.com'da yapılmaktadır. Bu nedenle, bu sorular genellikle Niuke'nin gerçek soru bankasında yer almaktadır. Şu anda bunu fırçalamalıyız. Bu tür sorular için, özellikle ilgilendiğiniz şirketin önceki gerçek sorularını küçümsüyorum. Bunları baştan sona fırçalamak en iyisidir. Sonuçta, soru yapıcı çoğu zaman önceki soruları değiştirmek, hatta orijinal soruları kopyalamak için tembel olacaktır.

Dahası, bu internet şirketlerinin gerçek algoritma problemleri genellikle çok özeldir.Bu tür problemlerin yasalarına hakim olmak için daha fazlasını yapın.Aynı matematik problemleri gibi, gerçek savaşta sakinliğinizi korumak için daha fazlasını yapmalı ve pratik yapmalısınız.

Önerilen kaynaklar

Algoritmalar için çok fazla öğrenme kaynağı var Burada sadece kötü olmadığını düşündüğüm bazı kaynakları öneriyorum, ancak içeriği uzun süre izlemeniz için yeterince küçük değil.

Veri yapısı kaynakları için lütfen bu makaleye bakın.Burada esas olarak algoritmalar için öğrenme kaynakları öneriyoruz.

kitabın

"Algoritma diyagramı" "Aha, algoritma" "Kılıç," "Algoritmaya Giriş" teklifini ifade eder, hazır erişteleri kapsasa bile tavsiye edilmez, biraz ağırdır.

video

"LeetCode fırçalama sınıfı" "Düz yarasa algoritması fırçalama sınıfı" Küçük kaplumbağanın bazı klasik algoritma kursları

diğer

  • Algoritma algoritması animasyonunu öğrenmek için beş dakika

  • Programcı Xiaohui'nin komik algoritması

  • LeetCode veya LintCode

sonuç olarak

Algoritmaların öğrenilmesiyle ilgili olarak, bugün burada duracağım. Aslında, tartıştığımız algoritma öğrenme yöntemleri daha çok yazılı görüşmeler içindir, pragmatik ve etkilidir ve neyi öğreneceğinizi ve hangi adımları takip etmeniz gerektiğini hızlı bir şekilde anlamanıza yardımcı olur.

Genel olarak, önce veri yapısını öğrenin, sonra pratiği güçlendirmek için kılıcı kullanın, ardından temeli pekiştirmek için bazı algoritma kitapları okuyun, klasik algoritmayı anlayın ve sonunda LeetCode ve gerçek problemlerle başlayın ve problem çözme yeteneğinizi sürekli olarak eğitin ve algoritmik yeteneğinizi güçlendirin. Bu durumu sürdürmek ve sınavdan bir ay hatta birkaç ay önce sorunları çözme duygusu, gerçek savaşta daha iyi performans göstermenizi sağlayacaktır.

Lan Yingying, uzun bacakları ve göz alıcı bacakları olan siyah dekolteli bir elbise giyiyor, klasik güzelliği yorumlamak için piyano çalıyor
önceki
En güzel şef! Liya Tong, balkabağı çorbasını canlı yayınlıyor ve ağırlığı hayranların kıskançlığını çekiyor
Sonraki
Veri bilimcileri için beş yaygın SQL mülakat sorusu
Ishihara Rimi, içten bir gülümseme ve mükemmel iyileştirme gücüyle bira reklamını üstleniyor
Komik: KMP algoritması nedir?
Gina'nın evi kendi güzel resimlerine bakmaktan sıkıldı, dik omuzlu tüp üst elbise zarif
CSS 12 eğlenceli ipuçları halka açıldı | Kuvvet Projesi
Selina saç örgüsü ve uzun etnik bir elbise giydi, kiraz çiçeklerinin altında dans ederek rahatladı ve dinlendi
Ye Yiqian gülümseyerek Tian Liang'ın bandaj bandının yol kenarı bandı kadar detaylı olduğunu söyledi.
Zhang Xinyu güzel fotoğraflar paylaşıyor ve kilo vermek için çağrılar yapıyor, pembe süveter giyiyor ve kısa saçlar hafif ve süper yaş azalması sağlıyor
Küresel salgın kritik bir noktada. DSÖ: Şimdi en büyük endişe Çin dışındaki bölge
Mazhai Kasabasında 18 büyük ızgara yoğun salgın önleme ağı
Üniversite giriş sınavı için 100 gün geri sayım! Bulutta "Yüz Gün Yemini", Tsinghua Üniversitesi ve Pekin Üniversitesi sprint için size eşlik edecek
Toyota iki araba: RAV4 Rong Fang solda, Weilanda sağda
To Top