Cách tốt để tìm hiểu cách giải quyết các câu hỏi trên InterviewStreet [đã đóng]


10

Có thể trùng lặp:
Làm thế nào để tôi thích nghi với các câu hỏi thử thách trước khi phỏng vấn?

InterviewStreet là một công ty mới về cơ bản hoạt động như một bộ lọc cho các công ty để tìm các lập trình viên có thể viết mã. Vấn đề của tôi là toán học của tôi khá yếu và tôi muốn nghiên cứu nó, ngay cả khi nó từ đầu, để có thể giải quyết các câu hỏi như câu hỏi này, được tìm thấy trên trang web của họ:

Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007

Bây giờ, xin vui lòng KHÔNG đăng câu trả lời cho câu hỏi đó, nó được lấy trực tiếp từ InterviewStreet và không nên đăng ở đây. Nó không phải là câu trả lời tôi đang tìm kiếm trong chủ đề này. Những gì tôi đang hỏi là một câu hỏi cơ bản hơn có thể được trả lời bởi một số tin tặc trong cộng đồng SO.

Làm thế nào để một người chuẩn bị cho một câu hỏi như vậy? Những tài nguyên nào có sẵn để tôi học / học cách giải quyết loại vấn đề này? Điều này có được bảo hiểm trên chương trình học mở MIT không? Học viện Khan? Bất kỳ cuốn sách cụ thể? Tôi thậm chí không chắc bắt đầu từ đâu để bắt đầu giải quyết vấn đề ở trên và tôi muốn tìm hiểu những bước tôi có thể thực hiện để làm như vậy.


đừng hiểu sai ý tôi - Tôi thích loại câu hỏi này rất nhiều (câu đố nhỏ cho cuối tuần) - nhưng tôi thực sự không nghĩ rằng bạn sẽ tìm thấy những chương trình tốt với những câu hỏi đó - bạn sẽ tìm thấy những người đam mê toán học (điều đó có thể tốt chương trình) - và tất cả chúng ta đều biết rằng những người đó đã hoàn thành mã, nhưng người bên cạnh họ sẽ không bao giờ có thể đọc được mã của họ :) ... muốn biết ai đó có tốt không? Hãy ngồi xuống và lập trình cặp 2 giờ với người đó và bạn sẽ học được nhiều điều hơn là nếu anh ta tình cờ thích câu đố của Gardner
Carsten

Câu trả lời:


9

Thông thường các câu hỏi phỏng vấn được thiết kế để kiểm tra kỹ năng giải quyết vấn đề của bạn mà không cần bất kỳ kiến ​​thức chuyên môn nào. Nhưng đối với câu hỏi của bạn, một số kiến ​​thức toán học chắc chắn sẽ giúp ích. Ít nhất, bạn sẽ cần hiểu các định nghĩa về 'tích phân dương' và 'modulo'. Một khóa học giới thiệu về lý thuyết số có thể hữu ích, có lẽ đây là khóa học từ OCW .

Tôi cũng muốn giới thiệu Project Euler cho các vấn đề mẫu - đó là một cách tuyệt vời để phát triển kiến ​​thức toán học và lập trình của bạn. Chọn một ngôn ngữ và bắt đầu làm việc thông qua các bài tập.


6

Bạn không thể chuẩn bị cho những loại vấn đề này bằng cách ghi nhớ một cuốn sách. Cách duy nhất để được tốt tại giải quyết vấn đề là bằng cách làm rất nhiềurất nhiều vấn đề. Tôi khuyên bạn nên lấy một cuốn sách thuật toán và cấu trúc dữ liệu và đọc qua nó. Nó sẽ tăng tốc đáng kể quá trình.

Tôi nhớ một vài năm trước tôi đã dành cả một mùa hè (hơn 5 giờ mỗi ngày) để thực hành giải quyết các loại vấn đề này chỉ để giải trí.

Có một số nơi bạn có thể làm điều này. Project Euler là một điểm khởi đầu tốt. Thẩm phán UVa trực tuyến cũng có hàng tấn vấn đề.


Đó là một số cam kết. Bạn có thấy nó giúp bạn trong khả năng lập trình chung không?
Darren Young

3
Chắc chắn rồi. Tôi đã tham gia Olympic Điện toán Hoa Kỳ ở trường trung học và đi từ một người không ai lên top 20 ở Mỹ. Về mặt lập trình "thế giới thực", tôi nghĩ rằng tôi có thể nói với sự tự tin tối đa rằng các kỹ năng của tôi đã được mài giũa đáng kể. Bây giờ tôi không nói mọi người nên ra ngoài và làm những gì tôi đã làm, nhưng tôi nghĩ rằng đáng để dành thời gian để mài giũa kỹ năng giải quyết vấn đề của bạn. Bạn thực sự có thể học được rất nhiều và nó chắc chắn có thể áp dụng để phát triển phần mềm.
tskuzzy

0

Vấn đề đặc biệt này đòi hỏi bạn phải biết lý thuyết số cơ bản, cụ thể là các ý tưởng như bao thanh toán các số tổng hợp, một số tính chất của số nguyên tố và sự hiểu biết về các cặp số tương đối nguyên tố.

Các vấn đề khác trên trang web đòi hỏi phải hiểu ký hiệu O lớn, cấu trúc dữ liệu đơn giản, thuật toán cơ bản như sắp xếp và tổ hợp. Tôi đã vượt qua 3 trong số 5 vấn đề và tôi gần như đã giải quyết xong vấn đề thứ 4 của mình và tôi chưa sử dụng bất kỳ kiến thức cụ thể nào sau năm đầu tiên học lớp CS ở trường đại học. Điều đó nói rằng, đây là những vấn đề khó khăn. Một số trong chúng đòi hỏi một lượng trực giác toán học đáng kinh ngạc.

Để chuẩn bị cho loại công cụ này, bạn phải giỏi giải toán. Nhìn vào Olympic (nếu bạn đang học trung học) hoặc kỳ thi Putnam (nếu bạn đang học đại học) và làm các vấn đề thực hành bạn tìm thấy. Họ khó khăn, nhưng cuối cùng bạn cũng trở nên tốt hơn.

Ngoài ra, đừng làm câu hỏi 30 điểm - Truy vấn Quadrant - trước tiên. Đó là khó nhất cho đến nay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.