Thiệt =))))))))) mấy câu lý thuyết mình cũng chả biết trả lời sao nữa =)))))))
Theo đánh giá cá nhân của mình, bạn chủ thớt vậy là OK rồi, chúc bạn may mắn nha!
Ký sự phỏng vấn đầu đời và có suy nghĩ mông lung tương lai
Nếu để ý, các câu hỏi của ảnh đều là câu hỏi mở.
Do đó không có 1 câu trả lời hoàn hảo, mỗi người có cách nhìn nên sẽ có cách trả lời khác nhau.
Bạn cứ tự tin khoe cá tính nhé.
Cái trình bày bài viết thì nó là yêu cầu chung của mỗi người nên k đánh giá vô lập trình được ạ
a ấy bảo chủ yếu để detect tư duy, hướng giải quyết, và đánh giá mình bình bình. Mình nghĩ chắc a ấy đánh giá mình là yếu
Phỏng vấn cũng phải ôn lại mấy cái này để trả lời cho mạch lạc chứ đùng 1 cái bắt trả lời cũng khó, trả lời theo suy nghĩ của m thì có thể ko đc mạch lạc + ko đúng ý nhà tuyển dụng là phải.
Fresher mà bị hỏi nhiều thế hả bạn ! Chắc phải đi nhiều công ty mới cứng hơn được. Giờ đầu óc mình cũng lang mang quá
Bị đẩy xuống thực tập và đậu rồi ạ
Hoàn cảnh của tôi và bác khá giống nhau, cũng làm công ty startup X, sau 1 thời gian ra phỏng vấn với đời cho biết với người ta thì bị đánh bầm dập dạt về. Dù sao cũng biết được điểm yếu của mình là gì để về nhà cải thiện lại
Bài phỏng vấn kia chả đánh giá được mind set, tư duy gì mấy đâu. Như anh thấy thì nội dung câu hỏi như kiểu dìm ứng viên xuống để ra giá thấp.
Chứ mấy câu lý thuyết, phân tích kỹ thì câu nào cũng có vấn đề. Như câu này: “OOP: Hướng đối tượng của C++ vs C# nó khác nhau như thế nào”, biết được câu trả lời rồi thì sao, nó áp dụng được gì cho công việc? Nó có ích gì cho tư duy, mind set, kỹ thuật, design? Chả có ích gì cả. C++ và C# vẫn được áp dụng đầy ra, tùy vào ứng dụng.
Kiểm tra tư duy thì phải gắn với bài toán cụ thể, tình huống thực tiễn, làm thực, kết quả thực. Chứ kiểm tra qua mấy câu hỏi giáo điều thì chỉ có mấy khả năng sau: Muốn dìm ý chí của ứng viên xuống, Cty không có những bài toán lớn để giải quyết mà chỉ làm ăn lặt vặt nhỏ lẻ hoặc outsourcing.
Thực tập có lương không? Không có thì tự tin sang công ty khác đi, vừa có thêm exp vừa có tiền đầu tư kiến thức.
Mình từ vấn đề mới đưa ra architecture, design, chứ giờ mà hỏi chay có những DP nào, khi nào queue, nào stack, rồi trường hợp nào dùng cái nào, hoặc cho viết code chay mà không có problem cụ thể cũng chả biết làm sao (cho vừa ý họ) luôn.
Câu hỏi này là ý như thế nào nhỉ ?
public class Queue<T> {
private Stack<T> inbox = new Stack<>();
private Stack<T> outbox = new Stack<>();
public void enqueue(T value) {
inbox.push(value);
}
public T dequeue() {
if (outbox.isEmpty()) {
while (!inbox.isEmpty()) {
outbox.push(inbox.pop());
}
}
return outbox.pop();
}
}
thực tập vẫn có lương ạ, nhưng phải ký hợp đồng đào tạo
Ở trên mình có chút thắc mắc, bạn có thể giải thích được ko ? Mình ko hiểu ý của yêu cầu đấy
Độ phức tạp là O(1) mà bạn
O(1) amortized (trung bình)
nói rõ hơn chỗ này đc không rogp10 ơi, mình hơi yếu phần này
Nếu Stack được hiện thực bằng Linked List thì có thể tận dụng thao tác insert phần tử head, remove phần tử head để làm push(), pop() cho Stack. Nên thao tác trên Stack chỉ chạy trong O(1).
enqueue()
sử dụng push() của Stack, nên nó cũng chạy O(1).
Còn dequeue()
, thời gian chạy phụ thuộc vào condition outbox.isEmpty()
. Nếu là true
, thời gian là O(n), nếu là false
thì thời gian chỉ là O(1). Do đó việc tính runtime time cho dequeue() rắc rối hơn, vì phải xem xét với từng outbox
thì condition trả về như thế nào.
Tuy nhiên, cũng có cách đơn giản, nếu xét tất cả outbox
phân phối theo uniform distribution. Trong tất cả outbox
có thể có, chỉ có duy nhất 1 trường hợp “outbox chứa 0 phần tử” làm cho outbox.isEmpty()
trả về true
. Do đó xác suất cho condition trả về true
gần bằng 0, false
gần bằng 1. Vì thế, tổng thời gian runtime time của dequeue()
tính xấp xỉ như sau:
0 . O(n) + 1 . O(1) = O(1)
Update tình hình hiện tại: Rất cảm ơn lời khuyên mọi người, e vừa tốt nghiệp đầu năm vừa rồi, hiện tại mức lương của e cũng được 1k rồi ạ. Cảm ơn mọi người ạ