Câu hỏi phỏng vấn Java C/C++

Nếu bạn cần các câu hỏi nâng cao hơn dựa trên mảng thì bạn có thể xem thêm tại The Coding Interview Bootcamp. Thuật toán + Cấu trúc dữ liệu, một khóa học kiểu bootcamp về thuật toán, được thiết kế đặc biệt để chuẩn bị phỏng vấn xin việc cho những gã khổng lồ kỹ thuật như Google, Microsoft, Apple, Facebook, v.v.



Câu hỏi phỏng vấn Java C/C++


Và, nếu bạn cảm thấy 10 câu hỏi là không đủ và bạn cần thực hành nhiều hơn, thì bạn cũng có thể xem danh sách 30 câu hỏi mảng này





3. Câu hỏi phỏng vấn lập trình LinkedList

Danh sách liên kết là một cấu trúc dữ liệu quan trọng khác sau mảng và Chuỗi. Nó thực sự khen ngợi mảng và bất cứ điều gì bạn không thể làm với một mảng, bạn có thể làm với một danh sách được liên kết

Ví dụ, mảng cần bộ nhớ liền kề để lưu trữ các đối tượng nhưng danh sách được liên kết không cần điều đó. Thật khó để thêm và bớt các phần tử trong một mảng vì bạn cần thay đổi các phần tử hiện có nhưng điều đó rất dễ dàng với một danh sách được liên kết, vì bạn chỉ cần thay đổi con trỏ để chứa chúng

Nhưng, không có gì là miễn phí trong thế giới này. Mặc dù danh sách được liên kết cung cấp tất cả các chức năng này nhưng cái giá phải trả là bạn sẽ mất khả năng tìm kiếm các phần tử trong thời gian liên tục với chỉ mục. Tìm kiếm và phần tử yêu cầu duyệt qua danh sách được liên kết, có nghĩa là kiểm tra tất cả các nút, do đó tốn khoảng O(n) thời gian


14) Làm cách nào để bạn tìm thấy phần tử ở giữa của danh sách được liên kết trong một lượt?
Để trả lời câu hỏi lập trình này, tôi muốn nói rằng bạn bắt đầu với một giải pháp đơn giản mà bạn duyệt qua Danh sách liên kết cho đến khi bạn tìm thấy phần đuôi của danh sách được liên kết nơi nó trỏ đến null để tìm độ dài của danh sách được liên kết và sau đó lặp lại cho đến giữa

Sau câu trả lời này, người phỏng vấn sẽ yêu cầu bạn tìm phần tử ở giữa trong một lượt và ở đó bạn có thể giải thích rằng bằng cách thực hiện đánh đổi không gian-thời gian, bạn có thể sử dụng hai con trỏ, một con trỏ tăng dần từng bước một và con trỏ kia tăng dần hai bước một lần,



15) Làm thế nào để bạn tìm thấy phần tử thứ 3 từ cuối cùng trong một lượt?
Câu hỏi lập trình này tương tự như trên và có thể được giải bằng cách sử dụng 2 con trỏ, bắt đầu con trỏ thứ hai khi con trỏ thứ nhất đến vị trí thứ ba


16) Làm thế nào để bạn tìm thấy nếu có bất kỳ vòng lặp nào trong danh sách liên kết đơn?
Câu hỏi lập trình này cũng có thể được giải bằng cách sử dụng 2 con trỏ và nếu bạn tăng một con trỏ lên một bước tại một thời điểm và hai bước khác tại một thời điểm thì chúng sẽ gặp nhau tại một số điểm nếu có vòng lặp


17) Làm thế nào để đảo ngược danh sách liên kết đơn?


18) Sự khác nhau giữa danh sách liên kết và cấu trúc dữ liệu mảng?



Nếu bạn gặp khó khăn khi giải các câu hỏi về mã hóa danh sách được liên kết này thì tôi khuyên bạn nên làm mới kỹ năng cấu trúc dữ liệu và thuật toán của mình bằng cách xem qua Grokking the Coding Interview. Khóa học Các mẫu cho câu hỏi mã hóa trên Educative, một trong những khóa học tốt nhất để tìm hiểu các mẫu mã hóa như Cửa sổ trượt và Khoảng thời gian hợp nhất, có thể được sử dụng để giải hơn 100 bài toán Leetcode.  


Câu hỏi phỏng vấn Java C/C++




Nếu cần thêm câu hỏi dựa trên danh sách liên kết thì bạn cũng có thể xem danh sách 30 câu hỏi phỏng vấn danh sách liên kết này để biết thêm các câu hỏi thực hành



4. Câu hỏi phỏng vấn lập trình cây nhị phân

Cây nhị phân hay đơn giản là cây là một trong những chủ đề yêu thích của hầu hết người phỏng vấn và đặt ra một thách thức thực sự nếu bạn gặp khó khăn với đệ quy. Các câu hỏi lập trình trên cây có thể ngày càng khó khi bạn nghĩ lặp nhưng đôi khi có thể rất dễ nếu bạn đưa ra giải pháp đệ quy


18) Làm cách nào để tìm độ sâu của cây nhị phân?


19) Viết code để in InOrder tra cứu cây?


20) In ra tất cả các nút lá của cây nhị phân?


21) Viết phương thức trong Java để kiểm tra xem một cây có phải là cây tìm kiếm nhị phân hay không?



22) Làm cách nào để kiểm tra xem cây có cân bằng hay không trong Java?


23) Cây tìm kiếm nhị phân được triển khai như thế nào?


24) Làm cách nào để bạn thực hiện duyệt theo thứ tự trước trong một cây nhị phân đã cho?


25) Làm cách nào để bạn duyệt qua một cây nhị phân đã cho theo thứ tự trước mà không cần đệ quy?


26) Làm cách nào để in tất cả các nút của một cây nhị phân đã cho bằng cách sử dụng phép duyệt theo thứ tự mà không cần đệ quy?

27) Làm cách nào để bạn triển khai thuật toán duyệt theo thứ tự sau?

28) Làm thế nào để bạn duyệt cây nhị phân trong phép duyệt theo thứ tự sau mà không cần đệ quy?

29) Tất cả các lá của cây tìm kiếm nhị phân được in như thế nào?

40) Làm cách nào để đếm số nút lá trong một cây nhị phân đã cho?

41) Làm cách nào để thực hiện tìm kiếm nhị phân trong một mảng đã cho?


Các câu hỏi dựa trên cây nhị phân đôi khi bị đánh lừa và nếu bạn gặp khó khăn khi giải các câu hỏi mã hóa danh sách dựa trên cây này thì tôi khuyên bạn nên sửa lại kỹ năng thuật toán và cấu trúc dữ liệu của mình bằng cách tham gia Khóa học Phỏng vấn Kỹ sư Phần mềm về Số mũ.   



Câu hỏi phỏng vấn Java C/C++



Khóa học này cung cấp nội dung đánh giá toàn diện về cấu trúc dữ liệu, thuật toán và nguyên tắc thiết kế hệ thống quan trọng nhất, đồng thời cung cấp các cuộc phỏng vấn giả với các kỹ sư và nhà quản lý của FAANG, giới thiệu các cuộc phỏng vấn trông như thế nào, cũng như các vấn đề mã hóa tương tác trong Python và JavaScript.  


Ngoài ra, còn có các bài học bổ sung về các câu hỏi phỏng vấn hành vi dành cho kỹ sư và lời khuyên về cách phát triển sự nghiệp công nghệ của bạn. Nó được viết bởi một cựu kỹ sư FAANG và đây là một trong những khóa học toàn diện nhất để sửa đổi tất cả các cấu trúc dữ liệu quan trọng như mảng, danh sách liên kết, cây nhị phân, v.v.




5. Câu hỏi lập trình về Tìm kiếm và Sắp xếp

Tôi chỉ bao gồm hai câu hỏi lập trình liên quan đến tìm kiếm và sắp xếp nhưng bạn có thể tìm thấy nhiều câu hỏi khác trên Google. Mục đích của những câu hỏi lập trình này là để xem liệu một lập trình viên có quen thuộc với cơ chế tìm kiếm và sắp xếp thiết yếu hay không


23) Viết chương trình sắp xếp các số tại chỗ bằng quick sort?


24) Viết chương trình thực hiện thuật toán tìm kiếm nhị phân bằng Java hoặc C++?


25) Làm thế nào để bạn sắp xếp các đối tượng Java bằng Bộ so sánh?
Đây là một câu hỏi lập trình cụ thể khác của Java và bạn có thể kiểm tra cách sắp xếp Đối tượng bằng Bộ so sánh và Có thể so sánh để biết câu trả lời

26) Viết mã để thực hiện Sắp xếp Chèn trong Java?


27) Viết mã để triển khai Sắp xếp bong bóng trong Java?



Nếu bạn có thể giải quyết những câu hỏi này một cách dễ dàng thì bạn đang ở trong tình trạng tốt. Đối với các câu hỏi nâng cao hơn, tôi khuyên bạn nên giải quyết các vấn đề được đưa ra trong Sổ tay thiết kế thuật toán của Steven Skiena, một cuốn sách có các câu hỏi khó nhất về thuật toán


Câu hỏi phỏng vấn Java C/C++





6. Câu hỏi lập trình về số

Hầu hết các câu hỏi lập trình đều dựa trên các con số và đây là những câu hỏi mà hầu hết chúng ta đã làm ở cấp đại học và xin lưu ý bạn rằng chúng vẫn có giá trị. Tôi đã thấy các lập trình viên có kinh nghiệm 3 năm vật lộn với những câu hỏi lập trình này và không giải được


26) Viết code để kiểm tra xem một không có phải là lũy thừa của hai hay không?


27) Viết chương trình kiểm tra một số có phải là đối xứng hay không?
Hãy xem bài đăng này cho biết cách đảo ngược một số trong Java và có thể được sử dụng để tìm xem nó có đối xứng hay không


28) Viết code kiểm tra một số nguyên có phải là số Armstrong hay không?
Đây là một chương trình Java để tìm số Armstrong, bạn có thể sử dụng logic tương tự để viết mã bằng bất kỳ ngôn ngữ lập trình nào khác như C và C++


29) Viết chương trình tìm tất cả các số nguyên tố đến một số cho trước?
Đây là một chương trình Java khác để tìm các số nguyên tố và in chúng. Bằng cách sử dụng logic thể hiện trong chương trình này;


30) Viết hàm tính số Fibonacci thứ n?
Bạn có thể kiểm tra chương trình Java này để in Chuỗi Fibonacci bằng cách sử dụng đệ quy và phép lặp


31) Làm cách nào để kiểm tra xem một số có phải là số nhị phân hay không?
Đối với câu hỏi này, bạn cần viết một hàm chấp nhận một số nguyên và trả về true nếu nó chỉ chứa 0 và 1 e. g. nếu đầu vào là 123 thì hàm của bạn sẽ trả về false, đối với 101, hàm sẽ trả về true

32)  Làm cách nào để đảo ngược một số nguyên trong Java?


33) Làm cách nào để đếm một số bit đã đặt trong số nguyên đã cho?


34) Làm thế nào để tìm tổng các chữ số của một số bằng đệ quy?


35) Làm thế nào để hoán đổi hai số mà không cần sử dụng biến tạm thời?


36) Làm cách nào để tìm số lớn nhất trong ba số nguyên trong Java?


37) Viết chương trình tìm các thừa số nguyên tố của một số nguyên?


38) Làm thế nào để cộng hai số nguyên mà không dùng toán tử số học?


Nếu bạn cần thêm các câu hỏi về lập trình như vậy, bạn có thể nhờ sự trợ giúp từ các cuốn sách như Cracking the  Coding Interview cuốn sách của Gayle Laakmann  McDowell  trình bày hơn 189 câu hỏi và giải pháp về lập trình. Một cuốn sách hay để chuẩn bị cho các cuộc phỏng vấn xin việc lập trình trong thời gian ngắn


Câu hỏi phỏng vấn Java C/C++





7. Câu hỏi phỏng vấn lập trình chung

Trong danh mục câu hỏi lập trình này, tôi đã đặt những câu hỏi không phù hợp với bất kỳ cấu trúc dữ liệu nào nhưng đưa ra một vấn đề thực tế và bạn cần đưa ra giải pháp. Những câu hỏi lập trình này đôi khi dựa trên các vấn đề mà chính nhà phát triển gặp phải

Tôi chưa bao gồm nhiều câu hỏi lập trình liên quan đến thiết kế phần mềm mà tôi đã chia sẻ trên Top 20 câu hỏi và câu trả lời về thiết kế phần mềm;


31) Viết chương trình kiểm tra xem hai hình chữ nhật R1 và R2 có trùng nhau không?


32) Bạn cần viết hàm để leo n bậc thang, bạn có thể leo từng bậc 1 hoặc 2 bậc một, hãy viết hàm trả về số cách leo bậc thang với n bậc. ()
Nó thực sự là một dãy Fibonacci nên bạn có thể giải nó như vậy

33) Viết mã cho Tạo ngẫu nhiên Không trong phạm vi từ tối thiểu đến tối đa?


34) Viết chương trình word-wrap hoạt động trên mọi kích thước màn hình?


35) Hãy thiết kế thuật toán tìm tần suất xuất hiện của một từ trong một bài báo?


36) Viết chương trình triển khai hàng đợi chặn trong Java?


37) Viết chương trình cho bài toán người sản xuất-người tiêu dùng?
Bài viết này giải quyết vấn đề người tiêu dùng sử dụng BlockingQueue trong Java. Bạn có thể tham khảo nó để trả lời câu hỏi này


8. Sách để chuẩn bị cho cuộc phỏng vấn công việc lập trình

Có rất nhiều sách hay, có thể giúp lập trình viên phỏng vấn tốt. Đây là danh sách những cuốn sách mà cá nhân tôi thích, theo thứ tự, tôi thích chúng

Câu hỏi phỏng vấn Java C/C++



1. Phỏng vấn lập trình tiếp xúc. Bí mật để hạ cánh công việc tiếp theo của bạn

Một cuốn sách phải đọc cho cả người mới bắt đầu và lập trình viên có kinh nghiệm. Nó không chỉ giúp bạn làm tốt các cuộc phỏng vấn mà còn trong đàm phán, trả lời các câu hỏi chung, v.v.

Các câu hỏi Java cơ bản được hỏi trong cuộc phỏng vấn là gì?

Câu hỏi phỏng vấn Java dành cho người mới .
Sự khác biệt giữa C ++ và Java là gì?.
Liệt kê các tính năng của ngôn ngữ Lập trình Java?.
Bạn nhận được gì trong tệp tải xuống Java?.
ClassLoader là gì?.
Phân bổ bộ nhớ có sẵn trong Java Java là gì?.
Sự khác biệt giữa Bộ nhớ Heap và Stack trong Java là gì?

C có tốt cho cuộc phỏng vấn viết mã không?

Theo kinh nghiệm phỏng vấn của tôi, hầu hết các ứng viên chọn Python hoặc Java. Các ngôn ngữ khác thường được chọn bao gồm JavaScript, Ruby và C++. Tôi tuyệt đối sẽ tránh các ngôn ngữ cấp thấp hơn như C hoặc Go, đơn giản vì chúng thiếu các chức năng thư viện và cấu trúc dữ liệu tiêu chuẩn .

Ngôn ngữ C để phỏng vấn là gì?

C là ngôn ngữ lập trình thủ tục và cấp trung . Ngôn ngữ lập trình thủ tục còn được gọi là ngôn ngữ lập trình có cấu trúc là một kỹ thuật trong đó các chương trình lớn được chia thành các mô-đun nhỏ hơn và mỗi mô-đun sử dụng mã có cấu trúc.

Tôi có thể chuẩn bị cho cuộc phỏng vấn Java như thế nào?

Những chủ đề nào cần chuẩn bị cho cuộc phỏng vấn Java? .
Nguyên tắc cơ bản về Java
Cấu trúc dữ liệu và thuật toán
Khái niệm hướng đối tượng
Khái niệm cơ bản về đa luồng, đồng thời và luồng
Khung bộ sưu tập Java
Chuyển đổi loại ngày và nguyên tắc cơ bản
Mảng
Thu gom rác thải