thảo luận [Học Tập] Topic thuật toán

  • Người tạo chủ đề Người tạo chủ đề unknowpc90
  • Ngày bắt đầu Ngày bắt đầu
các bác cho e hỏi là đi làm thực tế có xài tới mấy cái data structure như hash tree,graph ko nhỉ,và sẽ dùng trong các trường hợp nào?
Tại lâu nay e thấy ngôn ngữ nào cũng tích hợp các hàm xử lý cho array là chính
 
Đi phỏng vấn gặp câu này chỗ điều kiện ràng buộc thấy hơi lạ. Bác nào hiểu giải thích giúp em với ạ. :adore:
1648290360679.png
 
các bác cho e hỏi là đi làm thực tế có xài tới mấy cái data structure như hash tree,graph ko nhỉ,và sẽ dùng trong các trường hợp nào?
Tại lâu nay e thấy ngôn ngữ nào cũng tích hợp các hàm xử lý cho array là chính

Thực tế thì dùng hàm thư viện cho lẹ, nhưng ít nhất thím phải hiểu được bản chất bên dưới thư viện đó dùng cấu trúc gì, nó có phù hợp với yêu cầu thực tế của thím không...

HashSet, Dictionary... Dùng cực nhiều trong caching.

Graph dùng nhiều trong social network.

Sent from Samsung SM-A528B using vozFApp
 
https://leetcode.com/problems/linked-list-cycle/
vừa giải bài này, đọc cách giải two pointer mà mặt cứ ngơ ra :(

Thím cứ nghĩ giống như 1 ông chạy bộ và 1 ông chạy xe máy vòng quanh cái sân vận động ấy, thể nào 2 ông cũng sẽ gặp lại nhau tại 1 điểm (vì có vòng lặp).

Bài toán thế này mà chuyển về bài toán tìm vòng lặp thì mới gọi là não to này


Sent from Samsung SM-A528B using vozFApp
 
các bác cho e hỏi là đi làm thực tế có xài tới mấy cái data structure như hash tree,graph ko nhỉ,và sẽ dùng trong các trường hợp nào?
Tại lâu nay e thấy ngôn ngữ nào cũng tích hợp các hàm xử lý cho array là chính
Hashmap thấy hay dùng đó bác, và cũng nên biết khi nào dùng unordered hay ordered map vì mỗi cái có độ phức tạp khác nhau, dựa theo tính chất công việc để có thể tối ưu hiệu năng.
 
Đi phỏng vấn gặp câu này chỗ điều kiện ràng buộc thấy hơi lạ. Bác nào hiểu giải thích giúp em với ạ. :adore:
Xem tệp đính kèm 1081603
Tức là có thể có nhiều phần tử xuất hiện nhiều nhất bằng nhau. VD input: [1,1,2,2,2,3,3,3] thì output là 2+3=5 vì 2 và 3 cùng xuất hiện nhiều nhất.

Edit: Sorry, k để ý cái dk ràng buộc, đúng là hơi lạ thật. Chắc typo error. :big_smile:
 
Sửa lần cuối:
Em có bài này không biết có cách nào hay hơn brute force không:
Cho mảng 2D n*n (n < 200).
Các phần tử đường chéo có thể < 0, các phần tử khác dương.
Lần lượt xóa cả hàng thứ i và cột thứ i.
Tìm tổng lớn nhất có thể của phần còn lại.

Với ma trận tổng quát trên thì có vẻ chỉ có cách brute force:
https://stackoverflow.com/questions...d-columns-in-an-n×n-matrix-to-maximize-the-su
 
Em có bài này không biết có cách nào hay hơn brute force không:
Cho mảng 2D n*n (n < 200).
Các phần tử đường chéo có thể < 0, các phần tử khác dương.
Lần lượt xóa cả hàng thứ i và cột thứ i.
Tìm tổng lớn nhất có thể của phần còn lại.

Với ma trận tổng quát trên thì có vẻ chỉ có cách brute force:
https://stackoverflow.com/questions/1720737/from-an-interview-removing-rows-and-columns-in-an-n×n-matrix-to-maximize-the-su
Đặt f(i) = tổng hàng i và cột i (lưu ý là ô đường chéo chỉ tính 1 lần). Nếu tất cả f(i) >= 0 suy ra không cần xóa thêm. Nếu tồn tại f(i) < 0 thì xóa hàng i và cột i, sau đó update lại mảng f.

Edit: cách này không đúng :beat_brick: Test sai
-3 2 0
2 -3 0
0 0 1
 
Sửa lần cuối:
Có bác nào đang luyện algo trên hackerrank không ạ? Hackerank với Leetcode cái nào hay hơn?

Em cày hackerank mà trình đọc hiểu TA kém thấy vất vả quá.
 
mọi người cho mình hỏi câu tìm phần tử lớn nhất với lớn thứ 2 trong mảng thì có cách nào tối ưu và có độ phức tạp bé nhất nhỉ
[ 2 4 5 6 6 6 7 7 8 9 8 ]
 

Thống kê chủ đề

Ngày tạo
unknowpc90,
Người trả lời cuối
Spaghetti Code,
Trả lời
1.460
Lượt xem
154.042
Quay lại
Lên đầu trang