Read-only archive. Login and posting are unavailable.
View Full Version : Algorithms-Làm sao để giỏi thuật toán ?
RaitoLight4492
11-12-2019, 07:41
Mình ôn đi ôn lại mà mình cứ quên mấy cái thuật toán hoài luôn. Rồi công việc thực tế cũng ít dùng nữa. Đến giờ cách tính độ phức tạp thuật toán mình nắm không vững nữa, chỉ biết là 1 dòng code là O(1), 1 vòng lặp tịnh tiến +1 là O(n) tùy vào số lần lặp :sosad:
Ai có bí quyết chỉ mình học tốt thuật toán với :pudency:
Mình ôn đi ôn lại mà mình cứ quên mấy cái thuật toán hoài luôn. Rồi công việc thực tế cũng ít dùng nữa. Đến giờ cách tính độ phức tạp thuật toán mình nắm không vững nữa, chỉ biết là 1 dòng code là O(1), 1 vòng lặp tịnh tiến +1 là O(n) tùy vào số lần lặp :sosad:
Ai có bí quyết chỉ mình học tốt thuật toán với :pudency:
ít dùng thì học làm gì mai fen
Mình ôn đi ôn lại mà mình cứ quên mấy cái thuật toán hoài luôn. Rồi công việc thực tế cũng ít dùng nữa. Đến giờ cách tính độ phức tạp thuật toán mình nắm không vững nữa, chỉ biết là 1 dòng code là O(1), 1 vòng lặp tịnh tiến +1 là O(n) tùy vào số lần lặp :sosad:
Ai có bí quyết chỉ mình học tốt thuật toán với :pudency:
Không có cách nào để hack trí nhớ đâu. Lời khuyên là nên thực tế 1 chút, làm hoặc kiếm việc làm đi. Các thuật toán tìm kiếm thì chỉ cần biết nó dùng khi nào, dùng ở đâu là được. Khi nào công việc đụng tới thường xuyên thì hãy học.
Luyện thành thần công rồi mới bước ra giang hồ là đi sau người khác mấy bước rồi.
RaitoLight4492
11-12-2019, 10:51
ít dùng thì học làm gì mai fen
Học lập trình ai cũng nói đó là core mà, ít ra ắm vũng để sau này nhảy việc :sweat:
Học lập trình ai cũng nói đó là core mà, ít ra ắm vũng để sau này nhảy việc :sweat:
Chắc họ chém gió cho vui, mấy cái công thức google, wiki có sẳn học chi cho mệt. Ra trường rồi than ko kiếm được việc làm thích hợp với cái mình học.
Học và code nhiều thôi, lên mấy trang test thuật toán mà làm. Daily mỗi ngày làm 1 bài, làm xong qua mục discussion xem bọn nó up results rồi compare với mình, rồi xem best solution mà độ phức tạp ít nhất, rồi mày mò ngâm cứu. Thường quá trình này mất 1 tiếng nếu bạn giải nhanh, còn thấy khó quá thì để đó làm 2-3 ngày. Kiên trì giải từ thấp tới khó cho được thì thôi chứ ko xem solutions
Vậy thôi :sexy:
dreamnight
11-12-2019, 12:44
Chắc họ chém gió cho vui, mấy cái công thức google, wiki có sẳn học chi cho mệt. Ra trường rồi than ko kiếm được việc làm thích hợp với cái mình học.
Chém gió gì, đó là sự thật bạn nhé. Ngành này chỉ biết code thì bạn cũng chỉ ở mức tb thôi, muốn giỏi hơn nữa thì phải biết về tư duy algorithm, nó thể hiện rõ tư duy coding của bạn. Giống như hành văn vậy, văn hay hoặc dở là do tư duy vận hành cả nhé, algorithm cũng thế. Người ta phỏng vấn algorithm ko phải vì muốn kiểm tra khả năng IQ, mà đa phần khả năng tư duy. Nếu ai trong ngành này từng PV các cty product nước ngoài lương trả trên 1k5 đều có vòng này hết.
dreamnight
11-12-2019, 12:47
Mình ôn đi ôn lại mà mình cứ quên mấy cái thuật toán hoài luôn. Rồi công việc thực tế cũng ít dùng nữa. Đến giờ cách tính độ phức tạp thuật toán mình nắm không vững nữa, chỉ biết là 1 dòng code là O(1), 1 vòng lặp tịnh tiến +1 là O(n) tùy vào số lần lặp :sosad:
Ai có bí quyết chỉ mình học tốt thuật toán với :pudency:
Bạn ko cần tư duy cứng ngắt để thuộc làu làu algorithm, bạn phải hiểu rõ cơ bản cách giải hoặc tư duy tiếp cận algorithm thế nào. Ví dụ Quick short người ta làm sao, hoặc phổ biến là tìm kiếm bao nhiều lần một chuỗi con xuất hiện. Từ đó sau khi hiểu rõ cách tư duy, bạn sẽ tự khắc code ra được mà ko cần đọc code của người ta.
Chém gió gì, đó là sự thật bạn nhé. Ngành này chỉ biết code thì bạn cũng chỉ ở mức tb thôi, muốn giỏi hơn nữa thì phải biết về tư duy algorithm, nó thể hiện rõ tư duy coding của bạn. Giống như hành văn vậy, văn hay hoặc dở là do tư duy vận hành cả nhé, algorithm cũng thế. Người ta phỏng vấn algorithm ko phải vì muốn kiểm tra khả năng IQ, mà đa phần khả năng tư duy. Nếu ai trong ngành này từng PV các cty product nước ngoài lương trả trên 1k5 đều có vòng này hết.
Mình ko rõ tư duy algorithm là gì nhưng bạn ở trên hỏi làm sao nhớ được algorithm. Mình trả lời là ko cần phải nhớ nó mà cần phải biết dùng ntn & ở đâu
Mình ko rõ tư duy algorithm là gì nhưng bạn ở trên hỏi làm sao nhớ được algorithm. Mình trả lời là ko cần phải nhớ nó mà cần phải biết dùng ntn & ở đâu
cái này thấy cũng không dễ đâu fen à 1417824
dreamnight
11-12-2019, 14:25
cái này thấy cũng không dễ đâu fen à 1417824
Chính xác, algorithm ko phải chỉ bó trong phạm trù dùng ở đâu và ntn. Cùng 1 bài toán có nhiều cách giải, đó là câu chuyện toán học muôn thuở, algorithm cũng vậy thôi. Google đầy ra 1 mớ thesis đó, nhưng có bao nhiêu % là thực tiễn đâu. Nói cho dễ hiểu hơn algorithm ở đây cũng là một hình thức luyện brainstorm , bạn chủ topic cần hiểu "giỏi" ở đây ko phải là thuộc làu làu cách giải như Cấp 3 với DH, mà là luyện trí óc mình cho nó logic hơn và với IT là phải biết biến logic đó thành code.
Bạn có thể coi youtube các bài pv ở Google, microsoft vòng algorithm. Đa phần nó bảo bạn làm 3 bước sau:
1. Nói họ nghe solution tổng quát trong đầu bạn
2. Viết presudo code (mã giả) dựa trên cái solution đó
3. Viết code bằng ngôn ngữ của bạn và run
Hầu hết những người pass qua vòng này ko phải là người bắt tay vô code liền, mà là người giải thích logic của họ, đủ thiếu các trường hợp ra sao. Người pass qua vòng này là người phải hiểu rõ logic của họ, và góc nhìn của họ với bài toán ra sao.
Chính xác, algorithm ko phải chỉ bó trong phạm trù dùng ở đâu và ntn. Cùng 1 bài toán có nhiều cách giải, đó là câu chuyện toán học muôn thuở, algorithm cũng vậy thôi. Google đầy ra 1 mớ thesis đó, nhưng có bao nhiêu % là thực tiễn đâu. Nói cho dễ hiểu hơn algorithm ở đây cũng là một hình thức luyện brainstorm , bạn chủ topic cần hiểu "giỏi" ở đây ko phải là thuộc làu làu cách giải như Cấp 3 với DH, mà là luyện trí óc mình cho nó logic hơn và với IT là phải biết biến logic đó thành code.
Bạn có thể coi youtube các bài pv ở Google, microsoft vòng algorithm. Đa phần nó bảo bạn làm 3 bước sau:
1. Nói họ nghe solution tổng quát trong đầu bạn
2. Viết presudo code (mã giả) dựa trên cái solution đó
3. Viết code bằng ngôn ngữ của bạn và run
Hầu hết những người pass qua vòng này ko phải là người bắt tay vô code liền, mà là người giải thích logic của họ, đủ thiếu các trường hợp ra sao. Người pass qua vòng này là người phải hiểu rõ logic của họ, và góc nhìn của họ với bài toán ra sao.
Nếu mình hiểu ko lầm thì bạn đang giải thích algorithm là cái gì đó. Còn algorithm mình và chủ thớt nói ở đây chỉ là 1 thuật toán đã có đáp án mà thôi.
Có 2 vấn đề chính:
1. Khi thiết kế hệ thống bạn cần phải biết rõ khi nào thì cần dùng giải thuật nào để tối ưu. Nếu ko chương trình của bạn viết ra sẽ chạy ì ạch =>trash.
2. Khi code 1 hệ thống lớn, bạn ko thể nào code hết từng thành phần nhỏ mà phải sử dụng những thư viện api có sẳn.
Như vậy vấn đề ở đây là bạn có biết những thành phần nào trong api có sẵn sử dụng algorithm nào hay ko. Ví dụ đơn giản như O(1), O(N), O(LogN) được sử dụng phổ biến trong api về collection, cơ sở dữ liệu. Nếu bạn ko nắm được List, LinkedList, Dictionary... implement các giải thuật này ntn thì server viết ra chất lượng tải ccu kém, cluster các loại tiềm ẩn
Đại khái là như vậy, mình chỉ nói sơ sơ ý chính thôi, ko có đầu nhập quá nhiều
dreamnight
11-12-2019, 15:41
Haizz mình đang giúp bạn chủ thớt hiểu vấn đề là bạn đó đang đi ko đúng hướng lắm. Bạn đang hỏi làm sao "giỏi" thuật toán nên mình đang tư vấn bạn đi 1 con đường tốt hơn là ghi nhớ những thứ O(n), O(1)...Đó là 1 cách tồi hoặc ít ra theo cá nhân mình. Bản chất algorithm là 1 cách giải cho 1 bài toán nhưng nó ko phải là the best. Còn bạn gbvn1 là vụ chém gió khi ko cần nắm rõ algorithm cũng ko phải đúng lắm. Cmt ở trên của bạn đã trả lời thay cho câu chém gió rồi đấy thôi, ko hiểu sâu làm sao bạn trả lời những vấn đề đó.
Haizz mình đang giúp bạn chủ thớt hiểu vấn đề là bạn đó đang đi ko đúng hướng lắm. Bạn đang hỏi làm sao "giỏi" thuật toán nên mình đang tư vấn bạn đi 1 con đường tốt hơn là ghi nhớ những thứ O(n), O(1)...Đó là 1 cách tồi hoặc ít ra theo cá nhân mình. Bản chất algorithm là 1 cách giải cho 1 bài toán nhưng nó ko phải là the best. Còn bạn gbvn1 là vụ chém gió khi ko cần nắm rõ algorithm cũng ko phải đúng lắm. Cmt ở trên của bạn đã trả lời thay cho câu chém gió rồi đấy thôi, ko hiểu sâu làm sao bạn trả lời những vấn đề đó.
À, vậy là do cmt đó của mình hơi ẩu nên nói ko rõ ràng, ý của mình chỉ là ko cần phải nhớ mây cái công thức có sẵn thôi :surrender:
NNN v3.0
11-12-2019, 18:55
thì y như làm sao học giỏi toán hồi xưa thôi, là làm nhiều bài tập vào chứ sao
cơ mà 6 năm lập trình web rồi, mình vẫn chưa cần đụng nhiều tới thuật toán, toàn phải tiếp cận công nghệ, framework mới thôi
fivelions
11-12-2019, 21:43
Thuật toán căn bản là để phát triển tư duy thôi, như toán đại số hình học ngày xưa, học thì nhiều nhưng áp dụng thì ít, rồi kiến thức cũng mai một hết, nhưng cái cốt lõi là tư duy và nền tảng vẫn còn đó.
Ví dụ, 3 năm làm game của mình rất ít khi đụng đến thuật toán gì cao siêu, nhưng đụng phải toán hình học như diện tích chu vi thể tích hình tròn hình trụ hình ...v..v, đôi lúc là tích phân, vector ...v...v.. Tuy ko nhớ công thức, nhưng nền tảng vẫn biết chu vi diện tích thể tích tích phân là cái gì dùng trong trường hợp nào, hình dung ra cái vector là gì, vận hành ntn, rồi cứ thế google search công thức mà làm :)).
Cao hơn tí là mấy cái thuật toán tìm đường, BFS, Astar, tư duy tốt thì tuy chưa biết nhưng đọc hiểu hướng dẫn giải thích và làm đc là oke.
Cho nên cái vấn đề rèn thuật toán, cốt lõi ko phải là thuộc lòng, mà phải nhớ tất cả. Như mình 2 lần làm Astar mà vẫn quên, nhưng đọc lại code là nhớ, đó mới là cốt lõi, cốt lõi đó là tư duy :))
RaitoLight4492
12-12-2019, 13:43
Thuật toán căn bản là để phát triển tư duy thôi, như toán đại số hình học ngày xưa, học thì nhiều nhưng áp dụng thì ít, rồi kiến thức cũng mai một hết, nhưng cái cốt lõi là tư duy và nền tảng vẫn còn đó.
Ví dụ, 3 năm làm game của mình rất ít khi đụng đến thuật toán gì cao siêu, nhưng đụng phải toán hình học như diện tích chu vi thể tích hình tròn hình trụ hình ...v..v, đôi lúc là tích phân, vector ...v...v.. Tuy ko nhớ công thức, nhưng nền tảng vẫn biết chu vi diện tích thể tích tích phân là cái gì dùng trong trường hợp nào, hình dung ra cái vector là gì, vận hành ntn, rồi cứ thế google search công thức mà làm :)).
Cao hơn tí là mấy cái thuật toán tìm đường, BFS, Astar, tư duy tốt thì tuy chưa biết nhưng đọc hiểu hướng dẫn giải thích và làm đc là oke.
Cho nên cái vấn đề rèn thuật toán, cốt lõi ko phải là thuộc lòng, mà phải nhớ tất cả. Như mình 2 lần làm Astar mà vẫn quên, nhưng đọc lại code là nhớ, đó mới là cốt lõi, cốt lõi đó là tư duy :))
Tại hồi đó mình tìm hiểu làm thuật toán cũng nhiều, ra trường xong không dùng đến quên, đọc lại thì làm ok nhưng mà lại không thuộc. Đang có tư tưởng nhảy sang việc khác dùng thuật toán nhiều hơn mà không biết lúc phỏng vấn nó hỏi bất kỳ thì sao nhớ được nhỉ :sweat:
fivelions
12-12-2019, 13:49
Tại hồi đó mình tìm hiểu làm thuật toán cũng nhiều, ra trường xong không dùng đến quên, đọc lại thì làm ok nhưng mà lại không thuộc. Đang có tư tưởng nhảy sang việc khác dùng thuật toán nhiều hơn mà không biết lúc phỏng vấn nó hỏi bất kỳ thì sao nhớ được nhỉ :sweat:
Àh nếu có ý định nhảy việc hay phỏng vấn thì ôn lại tí, như thi đại học vậy. Thi xong phỏng vấn xong thì quên cmnđ cho nhẹ đầu :gach:
mmttrung1
12-12-2019, 15:27
Học và code nhiều thôi, lên mấy trang test thuật toán mà làm. Daily mỗi ngày làm 1 bài, làm xong qua mục discussion xem bọn nó up results rồi compare với mình, rồi xem best solution mà độ phức tạp ít nhất, rồi mày mò ngâm cứu. Thường quá trình này mất 1 tiếng nếu bạn giải nhanh, còn thấy khó quá thì để đó làm 2-3 ngày. Kiên trì giải từ thấp tới khó cho được thì thôi chứ ko xem solutions
Vậy thôi :sexy:
Mai phen có thể liệt kê 1 số trang VN và nc ngoài không :adore:
it_social
12-12-2019, 15:35
Theo kinh nghiệm của em thì: điều tốt nhất thuật toán mang lại là rèn luyện kỹ năng tư duy của mình thôi thím ợ.
Các thuật toán kinh điển thường có nhiều ứng dụng và ý nghĩa. Ví dụ quicksort theo tư tưởng divide and conquer từng được bình chọn là thuật toán hay nhất năm n hay thế kỷ n nào đấy em không nhớ rõ :sexy:
Thím đừng quá áp lực là phải nhớ rõ mồn một nó mà đi sâu vào tìm hiểu tại sao cái thím tác giả lại nghĩ ra nó ấy ợ :adore: đặt vào bối cảnh lịch sử và tạo ra để solve vấn đề gì thì dễ nhớ hơn. Chứ học kiểu cách code của nó thì dễ quên lắm nè :gach:
Chúc thím học tập thú vị ạ!
Tip nhẹ: trước khi đi ngủ thím úp sách lền đầu thì kiến thức nó tự vào, ko phải học nhé :sure: :go:
mấy bác cho hỏi việc gì là dùng thuật toán nhiều nhỉ? https://i.imgur.com/1xK3bm3.png đi học cũng thích học với luyện thuật toán mà không biết sau này làm được gì 1417824
fivelions
12-12-2019, 18:29
mấy bác cho hỏi việc gì là dùng thuật toán nhiều nhỉ? https://i.imgur.com/1xK3bm3.png đi học cũng thích học với luyện thuật toán mà không biết sau này làm được gì 1417824
Câu hỏi này mình xin phép trả lời như sau :byebye:
- ?Công việc càng mang tính nền tảng chừng nào, thì càng cần thuật toán chừng nấy.
Hay nói cách khác, tỉ lệ và độ khó thuật toán tỉ lệ thuận với mức độ nền tảng của công việc.
Câu hỏi này mình xin phép trả lời như sau :byebye:
- ?Công việc càng mang tính nền tảng chừng nào, thì càng cần thuật toán chừng nấy.
Hay nói cách khác, tỉ lệ và độ khó thuật toán tỉ lệ thuận với mức độ nền tảng của công việc.
cụ thể là những vị trí nào vậy thím :shame:
buihuynhson
14-12-2019, 11:14
cái này thấy cũng không dễ đâu fen à 1417824
Ôn đi ôn lại cho thuộc? :shame:
Weiss Schneider
14-12-2019, 15:14
mấy bác cho hỏi việc gì là dùng thuật toán nhiều nhỉ? https://i.imgur.com/1xK3bm3.png đi học cũng thích học với luyện thuật toán mà không biết sau này làm được gì 1417824
Phát triển trí thông minh nhân tạo , bạn không biết thuật toán thì sao bạn làm được. Còn lấy lib người khác thì không nói làm gì. Mà đạt đến tầm này là Researcher rồi , đến chừng này bạn không phải đi làm thuê ăn sản phẩm nữa. Họ thuê bạn để học và phát triển thôi.
1308161
fivelions
14-12-2019, 17:42
cụ thể là những vị trí nào vậy thím :shame:
Mọi thứ đều có cấp bậc, ví dụ như game đi, thì thứ tự nó sẽ là game > game engine > OS > hardware(driver).
Tương tự với tất cả mọi thứ khác.
RaitoLight4492
14-12-2019, 21:48
Lên trang nào làm bài tập để luyện thuật toán cho vững đây?
buihuynhson
15-12-2019, 10:40
Lên trang nào làm bài tập để luyện thuật toán cho vững đây?
https://www.hackerrank.com
https://projecteuler.net/
Cứ thử 2 trang này trước :shame:
Lên trang nào làm bài tập để luyện thuật toán cho vững đây?
codeforces.com nhé :shame:
tiếng Việt thì có https://vn.spoj.com/ 1417824
codeforces.com nhé :shame:
tiếng Việt thì có https://vn.spoj.com/ 1417824
Cái spoj này của bọn nào thế thím :nosebleed:
Cái spoj này của bọn nào thế thím :nosebleed:
hình như của mấy trường chuyên ngoài Bắc ấy :shame:
hình như của mấy trường chuyên ngoài Bắc ấy :shame:
Trường em cũng cho làm bài trên này
Nhìn cái web cùi bắp vl :doubt:
Trường em cũng cho làm bài trên này
Nhìn cái web cùi bắp vl :doubt:
hình như hơn chục năm chưa được update mà :sexy: có web mới là vnoi.info ấy
hình như hơn chục năm chưa được update mà :sexy: có web mới là vnoi.info ấy
Em toàn sang học ké bọn UET :shame:
deolamgicungbibanlasao
17-12-2019, 15:26
hình như hơn chục năm chưa được update mà :sexy: có web mới là vnoi.info ấy
Vào đọc cái đề còn đếu hiểu nữa , thôi ko mơ IT nữa, làm công nhân tiếp vậy :sexy:
Gửi từ Xiaomi MI 8 Lite bằng vozFApp (http://bit.ly/vozfapp)
Thuật toán làm gì? Biết cơ bản gọi tên và cách dùng là đủ rồi, còn sâu hơn nữa thì chỉ để đi thi ACM thôi. Còn phỏng vấn thì ok, thuật toán có thể là bonus point ấy, nhưng cái quan trọng là SYSTEM DESIGN và những câu hỏi về BEHAVIOR
- một cái là foundation
- một cái experience
dolongdown
20-12-2019, 16:47
Học thuật toán thì phải code mới vui và giúp hiểu sâu hơn nữa thớt ạ :nosebleed:
luanducgk
29-12-2019, 11:45
Thuật toán làm gì? Biết cơ bản gọi tên và cách dùng là đủ rồi, còn sâu hơn nữa thì chỉ để đi thi ACM thôi. Còn phỏng vấn thì ok, thuật toán có thể là bonus point ấy, nhưng cái quan trọng là SYSTEM DESIGN và những câu hỏi về BEHAVIOR
- một cái là foundation
- một cái experience
:chaymau: Không thừa đâu. Chẳng qua bác chưa đụng đến những việc cần kiến thức của ACM thôi.
via vozForums (https://itunes.apple.com/app/id1269155623) for iPhone
RainKid_yeuguitar
31-12-2019, 14:31
yếu thuật toán cực mạnh :sweat:
AT.Mistake
04-01-2020, 00:05
yếu thuật toán cực mạnh :sweat:
Yếu thì miệt mài cày thôi bác :sweat:
Sent from OnePlus GM1910 using vozFApp (http://bit.ly/vozfapp)
Quan trọng là biết nó và biết khi nào dùng đến nó chứ nhớ kỹ để làm gì ?
nhat01vn
09-01-2020, 20:57
Học khmt đi là k biết cũng phải biết à
Issac_Newton
20-01-2020, 22:39
:sad: Algorithm thì phải đọc sách + làm nhiều , đừng học thuộc thuật toán làm gì, nó chỉ làm đầu bạn mụ ra thôi :tire:
Gửi từ Xiaomi Redmi Note 7 bằng vozFApp (http://bit.ly/vozfapp)
lisatthu35
22-01-2020, 19:27
thuật toán , bản chất nó là tư duy suy diễn , phân tích , rồi sau đó đưa ra 1 loạt các bước làm việc cụ thể để giải quyết vấn đề đc đưa ra , thuật toán nó ko cố định và nó rất rộng , cùng 1 bài toán có thể có rất nhiều cách giải tùy vào hoàn cảnh và yêu cầu để chọn hướng thích hợp , còn về việc học thuật toán thực chất là ta đang thừa kế lại thành quả của người đi trước họ giải rất nhiều bài toán đồng dạng sau đó tổng hợp lại thành 1 phương pháp chung , bây giờ chỉ cần ngồi học và hiểu đc các thuật toán mà người ta đã giải và tổng hợp lại là đủ ghê rồi , nhưng bạn phải có 1 khả năng tuy duy trừu tượng đủ tốt để áp dụng cho đúng thôi , chữ thuật toán thường áp dụng cho các bài toán ở tầm vĩ mô đa hình ,còn ở trình tự nghĩ ra thuật toán mới thì cũng ghê rồi , trí tuệ = kiến thức + tuy duy , cho nên muốn giỏi thì vừa phải học các kiến thức của người đi trước vừa rèn luyện khả năng tư duy cái nào cũng quan trọng cả ...
deolamgicungbibanlasao
22-01-2020, 22:21
Lên hackerrank luyện thuật toán chừng nào vào top 200 là ngon rồi :sexy:
Gửi từ Xiaomi MI 8 Lite bằng vozFApp (http://bit.ly/vozfapp)
GaChoiMaCau
23-01-2020, 10:50
Ôn cấu trúc dữ liệu chắc vào bạn ơi. Hiểu rõ nó trước khi học thuật toán. Trước mình học cuốn “ Data structure using in C oxford”
thuật toán , bản chất nó là tư duy suy diễn , phân tích , rồi sau đó đưa ra 1 loạt các bước làm việc cụ thể để giải quyết vấn đề đc đưa ra , thuật toán nó ko cố định và nó rất rộng , cùng 1 bài toán có thể có rất nhiều cách giải tùy vào hoàn cảnh và yêu cầu để chọn hướng thích hợp , còn về việc học thuật toán thực chất là ta đang thừa kế lại thành quả của người đi trước họ giải rất nhiều bài toán đồng dạng sau đó tổng hợp lại thành 1 phương pháp chung , bây giờ chỉ cần ngồi học và hiểu đc các thuật toán mà người ta đã giải và tổng hợp lại là đủ ghê rồi , nhưng bạn phải có 1 khả năng tuy duy trừu tượng đủ tốt để áp dụng cho đúng thôi , chữ thuật toán thường áp dụng cho các bài toán ở tầm vĩ mô đa hình ,còn ở trình tự nghĩ ra thuật toán mới thì cũng ghê rồi , trí tuệ = kiến thức + tuy duy , cho nên muốn giỏi thì vừa phải học các kiến thức của người đi trước vừa rèn luyện khả năng tư duy cái nào cũng quan trọng cả ...
chuẩn qua mai fen.
mới học thấy cái đệ quy nó khó vl
để tự mình nghĩ ra 1 cái đệ quy ở khả năng hiện tại của em là ko thể mất
mới học thấy cái đệ quy nó khó vl
để tự mình nghĩ ra 1 cái đệ quy ở khả năng hiện tại của em là ko thể mất
nghĩ 1 cách nhẹ nhàng hơn thì ko khó đâu bác, đừng nặng nề quá:byebye:
nghiabros
08-02-2020, 18:03
Chém gió gì, đó là sự thật bạn nhé. Ngành này chỉ biết code thì bạn cũng chỉ ở mức tb thôi, muốn giỏi hơn nữa thì phải biết về tư duy algorithm, nó thể hiện rõ tư duy coding của bạn. Giống như hành văn vậy, văn hay hoặc dở là do tư duy vận hành cả nhé, algorithm cũng thế. Người ta phỏng vấn algorithm ko phải vì muốn kiểm tra khả năng IQ, mà đa phần khả năng tư duy. Nếu ai trong ngành này từng PV các cty product nước ngoài lương trả trên 1k5 đều có vòng này hết.
IQ và tư duy là 2 thứ khác nhau à thím?
manhtuan99
15-02-2020, 22:59
Đọc cái này grokking algorithms - Aditya Bhargava
Rồi luyện bài trong cuốn cracking the coding interview
Luyện xong thì lên grind leetcode mức easy và medium. Tầm 200 bài là bạn ngon lắm r.
vBulletin® v3.8.0, Copyright ©2000-2026, Jelsoft Enterprises Ltd.