Vấn đề phỏng vấn bảng trắng yêu thích của bạn là gì? [đóng cửa]


52

Đúng như tiêu đề đã nói, vấn đề phỏng vấn bảng trắng yêu thích của bạn là gì và tại sao nó lại được chứng minh hiệu quả với bạn?

Junior, Senior, Java, C, Javascript, PHP, SQL, mã giả, v.v.


4
Một vấn đề tôi ghét là Câu đố của Einstein. stanford.edu/~laurik/fsmbook/examples/Einstein'sPu Muff.html Tôi không thể làm điều đó trong 30 phút. Nhưng sau đó tôi đã bực mình và phát hiện ra điều này: games.flowix.com/en/index.html Vì vậy, tôi đã luyện tập để làm một vấn đề khó hơn 6 x 6 x 6 trung bình trong 20 phút. Tôi nghĩ rằng tôi có thể xử lý 5 x 5 x 5 trong 30 phút bây giờ. Bất cứ câu đố ngu ngốc nào mà nhà tuyển dụng sẽ ném vào tôi - tôi sẽ nhớ chúng và sẽ át chúng lần sau. Có rất nhiều câu đố hay.
Công việc

20
@Job: Không ai trong số họ sẽ cho bạn biết bất cứ điều gì về cách một nhân viên sẽ thực hiện công việc. Trừ khi, tất nhiên, bạn dành tất cả thời gian làm việc để giải các loại câu đố này thay vì hoàn thành công việc thực tế.
Robert Harvey

1
@Robert Harvey bạn có nghĩa là bạn đang kinh doanh kiếm tiền bằng cách nào đó ngoài việc giải câu đố? Tôi không biết ...;) Câu đố đó rất vui. Một ghi chú bên lề, một công ty tôi từng làm việc cho các bài kiểm tra IQ thực tế đã sử dụng là bước đầu tiên trong sàng lọc của họ. Tôi muốn tìm một số câu hỏi bảng trắng tốt để phân tách các ứng cử viên tốt nhất, không chỉ đơn giản là sàng lọc họ.
Nicole

4
@Renesis: Là một nhà phát triển, tôi có thể thấy cách giải câu đố xác định các kỹ năng giải quyết và phân tích vấn đề, nhưng các nhà phát triển cũng phải biết cách dịch giải pháp đó thành mã. Giải một câu đố chỉ cho thấy một nửa thực hiện đó. Đó là sự khác biệt giữa việc giải một khối Rubix và viết một thuật toán để giải một khối Rubix.
Robert Harvey

@Robert Harvey Tôi đồng ý, tôi đặc biệt tìm kiếm các vấn đề về mã hóa, không chỉ là vấn đề suy nghĩ.
Nicole

Câu trả lời:


22

Tôi yêu cầu ứng viên thiết kế một giải pháp cho một vấn đề tôi thực sự gặp phải trong công việc hàng ngày. Làm như vậy, tôi cố gắng tạo một hộp thoại giữa tôi và ứng viên. Tôi cố gắng thảo luận về thiết kế mà anh ta đang xây dựng như thể tôi chưa bao giờ nghĩ về vấn đề trước đây.

Những gì tôi cố gắng đánh giá là liệu chúng tôi có thể hiểu nhau hay không, và liệu chúng tôi có thể nói về một vấn đề kỹ thuật mà không nhầm lẫn.

Ví dụ cụ thể

(Dành cho nhà phát triển máy tính để bàn java)

Thiết kế API để xử lý lịch sử điều hướng của trình duyệt web (trang trước, trang tiếp theo, liệt kê 10 trang trước) và có thể sử dụng lại ở nhiều phần của ứng dụng (ở đây tôi đưa ra ví dụ cụ thể trong ứng dụng của chúng tôi). Sau đó, phác thảo một thực hiện.

Tôi thích cái này, vì nó đủ đơn giản, dễ minh họa, nó có thể được giải quyết từng bước (thêm các hành vi bổ sung mà không phá vỡ mọi thứ), nó cho phép nói về các trường hợp cạnh và xử lý lỗi, và nó cũng cho phép nói về dữ liệu cấu trúc.


40

Tôi đã tìm thấy điều này cực kỳ sáng sủa khi phỏng vấn ứng viên và lọc ra những người không có kinh doanh ở đó. Nó tương tự như phức tạp với Fizz Buzz, nhưng tập trung vào các kỹ năng cơ sở dữ liệu.

Assuming the following basic  table structure
Documents (DocID, DocDate)
Keywords (KeyWordID, KeyWord)
DocumentKeywords (DocID,KeywordID)

Write a query to return the following:
Part 1: Documents with a DocDate after 4/1/1995  
Part 2: Documents that contain the keyword "Blue"  
Part 3: Documents that contain the either the keyword "Blue" or "Yellow"
Part 4: Documents that contain the both the keywords "Blue" and "Yellow"

Tôi cho phép họ viết nó trong bất kỳ biến thể SQL nào họ muốn và không quá cầu kỳ về các vấn đề cú pháp nhỏ. Tôi chủ yếu muốn biết rằng họ hiểu các khái niệm DB quan hệ cơ bản.

Hầu hết các ứng viên có thể vượt qua phần 3 mà không có vấn đề gì cả. Bạn sẽ ngạc nhiên khi nhiều người nghĩ rằng câu trả lời cho phần 4 chỉ là thay đổi toán tử từ OR thành AND trong mệnh đề where.


2
Ah, tôi thấy vấn đề w / # 4. Tài liệu của bạn chỉ có một từ khóa trên mỗi hàng, vì vậy bạn không thể có một ô bằng cả hai vòi
glasnt

8
Ôi trời! Tôi có thể thấy mình rơi vào (4) trong một cuộc phỏng vấn. @Job: Là người phỏng vấn , tôi yêu cầu ứng viên giải thích câu hỏi, hy vọng rằng anh ấy sẽ vấp phải vấn đề của mình để xem cách anh ấy giải quyết vấn đề đó. (điều đó thường cho bạn biết nhiều hơn một ứng cử viên nhận được câu hỏi của bạn trong lần thử đầu tiên.)
peterchen

3
@Renesis, tôi không chắc chắn điều này thực sự đào sâu. Điều này có vẻ khá tốt để tìm hiểu xem ai đó có các kỹ năng truy vấn SQL cơ bản. Tôi thực sự bị sốc khi có rất ít nhà phát triển có những kỹ năng cơ bản này ngày nay.
Mark Freedman

2
@ jk01, có thể tôi có thái độ học đường cũ về vấn đề này, nhưng IMO một nhà phát triển toàn diện nên có một số kiến ​​thức về DB, nếu không truy cập qua mã, nhưng ít nhất phải hiểu tên miền bằng cách thử nghiệm các truy vấn. Không có điều này, một nhà phát triển có một điểm mù khá đáng kể. Nó cũng TUYỆT VỜI hữu ích cho việc hỗ trợ và khắc phục sự cố hệ thống. Trừu tượng là tốt để giúp đơn giản hóa sự phát triển và tăng năng suất, nhưng tôi đã thấy quá nhiều giả định được đưa ra bởi vì điều này thường được trừu tượng hóa đi. Tôi có thể tiếp tục, nhưng đây có thể là một cuộc tranh luận hoàn toàn khác mà tôi chắc chắn đang diễn ra ở nơi khác;)
Mark Freedman

4
@ back2dos - Hãy nhìn xem, đừng bị xúc phạm chỉ vì bạn không thể trả lời nó. Có thể có nhiều công nghệ khác làm cho việc này đơn giản hơn, nhưng chúng tôi sử dụng rất nhiều cơ sở dữ liệu SQL và tôi tuyển dụng những người biết sử dụng các công nghệ mà chúng tôi sử dụng, không đưa ra lý do tại sao họ không phải trả lời câu hỏi phỏng vấn của tôi .
JohnFx

20

"Vẽ cho tôi trên bảng trắng thiết kế của dự án cuối cùng mà bạn đã làm, mà không tiết lộ cho tôi bất kỳ chi tiết nhạy cảm nào."


Làm thế nào bạn sẽ xác định thiết kế? Bạn đang tìm kiếm một sơ đồ lớp? Một sơ đồ UML khác? Một bản phác thảo cơ bản của các tầng?
justkt

1
Tôi gọi chúng là baloongrams. ;) Chỉ cần vẽ các hạt, đặt tên và kết nối chúng với các mũi tên được đặt tên. Tôi không quan tâm đến ứng dụng của anh ấy nhưng về thực tế anh ấy hiểu nó.
Uber đến

5
+1. Đối với những người, người đã có một công việc trước đây, đây chắc chắn là một trong những điều tốt nhất bạn có thể làm. Nếu họ có thể giải thích dự án được cấu trúc như thế nào, thì nó đã có giá trị rất nhiều. Nếu họ có một ý tưởng về lý do tại sao nó được cấu trúc theo cách cụ thể đó, hoặc làm thế nào một số thứ có thể được thực hiện tốt hơn, thì đây thực sự là một điểm cộng rất lớn.
back2dos

3
@justkt: Điều quan trọng là, người được phỏng vấn có được thông tin. Nó ít quan trọng như thế nào. Tôi đã gặp những người, những người thực sự biết UML, những người không thể giải thích một điều với nó và mọi người, những người có thể giải thích các hệ thống phức tạp bằng một vài dòng nguệch ngoạc.
back2dos

2
Làm thế nào trên trái đất là bất cứ ai có nghĩa vụ phải vẽ thiết kế của một dự án mà không tiết lộ bất kỳ chi tiết nhạy cảm?
Nemanja Trifunovic

14

Thực hiện strcpy, strcmpvà bạn bè.


4
Tôi yêu cầu thí sinh thực hiện atoi().
chrisaycock

2
Bạn sẽ ngạc nhiên về số lượng người không thể thực hiện strdup().
Tim Post

10
Điều đó chỉ công bằng nếu việc mở công việc dành cho lập trình viên C.

Trong cuộc phỏng vấn cho công việc hiện tại của tôi, người phỏng vấn yêu cầu tôi thực hiện strrev()hoặc thực hiện chức năng đảo ngược chuỗi. Giải pháp bảng trắng của tôi đã gây ấn tượng với họ và tôi đang làm việc.
Gul Sơn

@crisaycock atoi () rất dễ. itoa () là quanh co
Michael Brown

14

Yêu thích của tôi bao gồm một vài môn học là đếm số lượng nút trong cây nhị phân được cung cấp giao diện (trong C #):

public interface IBinaryTree<T>
{
    IBinaryTree<T> Left
    {
        get;
    }

    IBinaryTree<T> Right
    {
        get;
    }

    T Data
    {
        get;
    }

    // Other properties and methods not germane to this problem.
}

và chỉ để giải trí, đây là cách thực hiện, mặc dù người được phỏng vấn không cần phải thấy điều này.

public sealed class BinaryTree<T> : IBinaryTree<T>
{
    private readonly IBinaryTree<T> left;

    private readonly IBinaryTree<T> right;

    private readonly T data;

    public BinaryTree(
        IBinaryTree<T> left,
        IBinaryTree<T> right,
        T data)
    {
        this.left = left;
        this.right = right;
        this.data = data;
    }

    public IBinaryTree<T> Left
    {
        get
        {
            return this.left;
        }
    }

    public IBinaryTree<T> Right
    {
        get
        {
            return this.right;
        }
    }

    public T Data
    {
        get
        {
            return this.data;
        }
    }

    // Other properties and methods not germane to this problem.
}

và lớp trợ lý:

public static class BinaryTreeNodeCounter
{
    public static int CountNodes<T>(this IBinaryTree<T> tree)
    {
        // TODO: What goes here?
    }
}

Giải pháp tôi muốn thấy là đây:

public static class BinaryTreeNodeCounter
{
    public static int CountNodes<T>(this IBinaryTree<T> tree)
    {
        return tree == null
            ? 0
            : 1 + tree.Left.CountNodes() + tree.Right.CountNodes();
    }
}

Vì nó thể hiện kiến ​​thức về:

  • làm thế nào một cây (đặc biệt là cây nhị phân)
  • định nghĩa đệ quy của cây nhị phân
  • phương pháp đệ quy và cách các trường hợp cơ sở dừng đệ quy
  • đếm một nút có nghĩa là gì
  • giao diện như một hợp đồng
  • (ít quan trọng) kiến ​​thức về cú pháp C #:
    • thuốc generic
    • phương pháp mở rộng
    • điều hành ternary

Nó có thể là một phương pháp mở rộng?
Gul Sơn

Trong thời đại ngày nay, vâng. Chúng tôi đã mã hóa trong VS 2005 tại thời điểm đó, do đó cú pháp thưa thớt.
Jesse C. Choper

Tại sao nên sử dụng phương thức mở rộng khi bạn đã có mã nguồn cho lớp gốc? Đó không phải là phương pháp mở rộng dành cho.
Batibix

Tôi có thể đã đi sâu hơn một cấp độ và cho ứng viên thấy một giao diện mà lớp này thực hiện. Ý chính là lớp ban đầu không cần phải sửa đổi - một số nhà phát triển cấp nhập cảnh rất thích thêm nội dung vào lớp để làm cho yêu cầu "dễ dàng hơn".
Jesse C. Choper

crap thần thánh trông rất giống java!
kiểm tra

12

Hai câu hỏi đã gợi ra những cuộc thảo luận thú vị về bảng trắng đối với tôi là

  1. "Xin vui lòng bạn có thể giải thích chi tiết như bạn muốn làm thế nào một trình duyệt web có được một trang được tạo ra"
  2. "Hãy giải thích cách Java Hibernate hoạt động"

Họ bắt đầu đơn giản và sau đó trở nên phức tạp hơn.


31
ehi, tôi thậm chí không đủ điều kiện để đánh giá câu trả lời ... Tôi nghĩ rằng đối với người thứ hai, bạn cần 12 cây nến đen và một con dê ...
Uber đến

4
Thứ hai là dễ dàng, hệ điều hành của bạn lưu bộ nhớ cache của bộ xử lý và ngăn xếp và nội dung của RAM vào ổ cứng, sau đó khôi phục nó khi máy tính được bật lại.
Malfist

Tuy nhiên, câu hỏi đầu tiên có thể mất nhiều ngày để giải thích.
Malfist

@Malfist Tôi có nghĩa là khung bền vững Java Hibernate.
Gary Rowe

2
@Paul Stephenson Vâng, nhưng chỉ để chắc chắn ...
Gary Rowe

8

Tôi không thích sử dụng câu đố hay câu hỏi thiết kế làm câu hỏi bảng trắng. Tôi thích các câu hỏi đơn giản, đơn giản, kiểm tra khả năng viết một số mã của ứng viên. Yêu thích của tôi là:

1) Viết hàm để đảo ngược danh sách liên kết đơn. (Phải mất một lúc trước khi họ nhận ra họ cần 3 con trỏ.)

2) Cho một cây nhị phân, tìm độ sâu của cây nhị phân. (Câu hỏi này kiểm tra khả năng viết mã đệ quy của họ. Hãy cho tôi kiểm tra xem họ có còn trường hợp cơ sở không.)

3) Viết thủ tục tìm kiếm nhị phân một mảng các số nguyên. (Giống như Jon Bentley nói (trong Lập trình Ngọc trai), nhiều người có xu hướng mắc lỗi khi viết tìm kiếm nhị phân. Sau đó, người ta có thể theo dõi với việc tìm lỗi, viết trường hợp kiểm tra, chạy mã, v.v.)


+1, Tôi thích cách tiếp cận của bạn không có ý nghĩa gì khi hỏi ai đó về các chương trình động hoặc các khái niệm như vậy khi chúng hầu như không được sử dụng trong lập trình kinh doanh + Nhấn mạnh cũng phải có chất lượng mã chứ không phải trên giải pháp.
Geek

Tôi không bận tâm đến các câu hỏi thiết kế, nhưng tôi đã từng phỏng vấn một anh chàng có sở thích chơi câu đố và anh ta có một số câu hỏi kinh khủng. Nó giống như tôi hỏi ai đó câu hỏi võ thuật.
Bob Murphy

Có lẽ nên đảm bảo mọi người biết bạn có nghĩa là "mảng được sắp xếp" trong (3) phải không?
HaveAGuess

7

Chúng tôi đã sử dụng điều này tại một công ty tôi làm việc.

Chúng tôi đưa cho thí sinh một mảnh giấy dùng để theo dõi thời gian. Đó là một bảng thời gian thực sự được sử dụng bởi một hoặc các bộ phận của chúng tôi. Chúng tôi đã yêu cầu ứng viên hướng dẫn chúng tôi trong quá trình thiết kế để tạo ra một công cụ theo dõi thời gian tốt hơn. Không có ranh giới, không nói ngôn ngữ nào, v.v., chỉ muốn xem ứng viên giỏi đến mức nào trong "vòng đời đầy đủ". Nó đã cho chúng tôi một cái nhìn sâu sắc thực sự về cách họ thu thập các yêu cầu. Cách họ cấu trúc các bảng cơ sở dữ liệu, loại UI nào họ có thể làm. Kỹ năng giao tiếp rõ ràng là cần thiết cho nhiệm vụ này. Nó thường được thực hiện trong một căn phòng có nhiều bảng trắng lớn và kéo dài tới 2 giờ.

Chúng tôi đã thuê một số người sử dụng quy trình này và nếu họ thực sự làm tốt nhiệm vụ thì họ đã làm rất tốt cho chúng tôi. Nếu họ là những người ngoài lề và chúng tôi quyết định thuê họ bằng mọi cách (chủ đề riêng biệt) thì họ là những lập trình viên cận biên.


6

Tôi sử dụng một vấn đề có liên quan đến lĩnh vực lập trình của tôi.

Nếu tôi phát triển các ứng dụng web, tôi muốn xem làm thế nào họ có thể tạo ra một biểu mẫu web để xóa các bản ghi và cách tiếp cận họ có thể thực hiện để xóa bản ghi khỏi cơ sở dữ liệu, ví dụ. Điều này cho tôi biết nếu họ biết các nguyên tắc cơ sở dữ liệu cơ bản, cách họ tương tác với người dùng để xác minh xóa và nếu họ biết xóa mềm là gì.

Tôi không có một yêu thích. Vấn đề tôi chọn sẽ thay đổi rất nhiều tùy thuộc vào công việc.

Tôi không quan tâm liệu họ có thể giải quyết vấn đề hoàn toàn hay không trong một cuộc phỏng vấn, họ sử dụng công nghệ và ngôn ngữ nào, hoặc mã của họ trông như thế nào trên bảng trắng. Tôi đang tìm kiếm một mô hình suy nghĩ; Tôi muốn xem họ có biết suy nghĩ và giải quyết vấn đề không.


2
+1 Đối với đoạn cuối, tất cả đều quan trọng. Thông thường nó không phải là câu trả lời quan trọng trong những điều như vậy, nhưng con đường thực hiện để đạt được điều đó. Như tất cả các giáo viên toán của tôi từng nói "hãy thể hiện công việc của bạn!"
Orble

4

Yêu thích của tôi là một người bạn của tôi sử dụng.

Viết cho tôi một hàm để tạo / in / lưu trữ các số nguyên tố "n" đầu tiên và sau đó giải thích cách thức hoạt động và hiệu quả của nó.

Nó hoạt động tốt bởi vì:

  1. Đó là một câu hỏi thuật toán vì vậy nó đòi hỏi người được phỏng vấn phải có khả năng suy nghĩ và sau đó giải thích suy nghĩ của họ - để bạn có thể thấy bộ não của họ hoạt động như thế nào.

  2. Đó là ngôn ngữ độc lập.

  3. Hầu như không ai hiểu đúng hoàn toàn (thông thường trường hợp cạnh họ bỏ lỡ (1 hoặc 2 bình thường) hoặc họ không xử lý các số âm, vì vậy bạn có thể xem cách họ xử lý lỗi và được thông báo rằng họ đã sai.

  4. Hầu hết làm điều đó như một cái sàng đơn giản nhưng rất chậm (ví dụ 80% mọi người sẽ kiểm tra n là số nguyên tố bằng cách chia n cho tất cả các số nguyên nhỏ hơn n), cung cấp cho bạn nhiều phạm vi cho các cuộc hội thoại về cách họ có thể cải thiện thuật toán dựa trên đánh đổi không gian / thời gian, ví dụ: "tại sao bạn chia một số cho 4 nếu bạn đã biết nó không chia hết cho 2?" hoặc "Bạn đã làm việc rằng bạn chỉ cần chia cho tất cả các số nguyên tố nhỏ hơn sqrt (n), nhưng điều đó đòi hỏi bạn phải lưu trữ những số đó ở đâu đó, vậy ý ​​nghĩa của điều đó là gì?")

Không cần họ phải trả lời đúng. Nếu ai đó có thể suy nghĩ và giải thích suy nghĩ của họ thì họ sẽ đi một chặng đường dài để trở thành một ứng cử viên sáng giá.


Có lần tôi nhận được một câu hỏi phỏng vấn, nơi tôi được cấp một khối mã C rất khó hiểu và được yêu cầu tìm hiểu xem nó đã làm gì. Trong một vòng rất về cách nó in mọi số nguyên tố khác ra. 300 người nộp đơn và họ đề nghị cho tôi công việc vì rõ ràng tôi là ứng cử viên duy nhất nói cho họ biết mục đích của nó là gì, trái ngược với việc đưa ra các giá trị. Vì vậy, có, +1, số nguyên tố là một kiểm tra tốt. Đặc biệt nếu họ đưa ra một cái sàng, mặc dù điều đó đánh đổi sự phức tạp tính toán cho sự phức tạp của không gian.
Orble

1
1 không phải là số nguyên tố ..

2
@ Thorbjørn - rõ ràng, nhưng một tỷ lệ tốt các thói quen tôi từng thấy bằng văn bản để giải quyết vấn đề này đã nói với tôi rằng đó là
Rhys Gibson

sau đó họ có một lỗi :)

3

Một cái gì đó gọi là aff_z, một phần trong các bài kiểm tra C của trường kỹ thuật của tôi và đã được sử dụng như một bài kiểm tra "giả" để học sinh thất bại khi trở về từ kỳ nghỉ (hệ thống chấm điểm của chúng tôi ngụ ý rằng việc không làm bài kiểm tra đã dừng việc chấm bài làm mất hiệu lực toàn bộ bài kiểm tra của bạn. Buộc bạn phải chú ý đến các chi tiết biến thái). Tôi đã tái sử dụng nó một hoặc hai lần trong các cuộc phỏng vấn.

Dù sao thì ... tôi đã quên công thức chính xác nhưng nó giống như thế này ...

Write a function taking a single char parameter named c and returning nothing (void).
You function must satisfy the following requirements:

 - if c is bigger or equal to 0, then print 'z' to standard output
 - if c is stricly smaller than 0 , then print 'z' to standard output
 - in any other case, print the letter 'z' to standard output

Điều đáng buồn là không chỉ một số sinh viên sẽ đưa ra các giải pháp cực kỳ phức tạp khi câu trả lời khá rõ ràng, mà một số thậm chí còn thất bại.

Và tin hay không, nó cũng đã xảy ra trong các cuộc phỏng vấn.

Điều hành nó trong các cuộc phỏng vấn khá thú vị, vì một số ứng viên sẽ bắt đầu viết các nhánh có thể và sau đó nhận ra điều gì là sai (rõ ràng, nếu bạn chỉ hỏi họ bằng miệng, điều đó khá dễ hiểu khi họ nói như vậy ... nhưng nếu bạn viết nó ra, tôi thấy khó hiểu ...)

Thật ngớ ngẩn, nhưng tôi đoán đó là một sàng lọc tối giản (tương tự, khi tuyển dụng các lập trình viên JS, tôi luôn hỏi làm thế nào để khai báo một biến, và sau đó tùy thuộc vào câu trả lời của họ có hay không sử dụng var có làm thay đổi gì không. thành thật.)


1
Bạn đã bao giờ có ứng viên trong các cuộc phỏng vấn cảm thấy bị xúc phạm bởi điều này? Hoặc nghĩ rằng bạn chỉ đơn giản là vui vẻ với chi phí của họ thay vì thực hiện một cuộc phỏng vấn nghiêm túc?
Nicole

@Renesis: Tôi đã có một vài cái nhìn tôi với nụ cười nhếch mép trước. Một số trong đó đã thất bại trong bài kiểm tra. Nói chung các ứng cử viên tốt cười nếu tắt. Ví dụ, đối với các lập trình viên JS, tôi có khá nhiều ứng viên thất bại trong câu trả lời phỏng vấn bằng một "duh variablename = variablevalue;" , trong khi những người giỏi sẽ chỉ cười trên điện thoại hoặc gặp trực tiếp và nói trực tiếp với tôi về sự khác biệt sẽ xảy ra với hoặc dí dỏm var).
haylem

1
@Renesis: Thêm vào đó, tôi thực sự không quan tâm nếu một số người bị xúc phạm. Nó không phân biệt đối xử theo bất kỳ cách nào. Nếu họ bị xúc phạm, thì tôi sẽ cho rằng họ là loại người không muốn bị kiểm tra hoặc bị thẩm vấn. Tôi chưa bao giờ thực sự có ứng viên cảm thấy tôi có niềm vui với chi phí của họ mặc dù. Tôi thậm chí thường xin lỗi trước khi hỏi những câu hỏi rất đơn giản vì nó có thể cảm thấy lãng phí thời gian cho những người tốt. Nhưng vấn đề là, nó không lãng phí thời gian cho tôi. Không hỏi họ sẽ ne, về lâu dài.
haylem

@Renesis: Và thường thì không, những gì tôi nhận được sau cái nhìn nhếch mép / cười / bị xúc phạm là một biểu hiện xấu hổ và một lời xin lỗi từ người đã thất bại hoặc bắt đầu viết nhánh cho toàn bộ bài kiểm tra khi họ nhận ra nó vô dụng. Vâng, tôi có một số niềm vui khi làm bài kiểm tra này, nhưng tôi sẽ không cho nó nếu đó không phải là lý do chính đáng.
haylem

Cá nhân, tôi sẽ có một khuôn mặt tinh thần khi đọc điều đó và sẽ tự hỏi nếu có ai đó đã viết câu hỏi cho người phỏng vấn để làm cho anh ta vui vẻ.
wildpeaks

3

Nó thực sự phụ thuộc vào những gì bạn đang tìm kiếm, vì một tổ chức thực hiện nhiều công việc web động liên quan đến hình ảnh, tôi có xu hướng muốn hỏi một câu hỏi hình học phù hợp với công việc. Trong mọi trường hợp, tôi có xu hướng hỏi một câu hỏi hình học, vì tôi thấy đây là một bài kiểm tra toán tốt, đẹp và trực quan và có thể cho thấy một ứng viên có khả năng trình bày trực quan công việc và phương pháp làm việc của họ thông qua một vấn đề.

Đối với các ứng viên nâng cao, thỉnh thoảng tôi đưa ra câu hỏi sau:

Hình ảnh này cho thấy một mặt trăng lưỡi liềm. Chiều rộng của lưỡi liềm từ B đến D là 9cm và giữa E và F, 5cm. C là tâm của đường tròn lớn hơn.

a) Hãy tính diện tích của lưỡi liềm. Câu hỏi toán học Trăng lưỡi liềm

b) Mô tả các tính toán cần thiết để thay đổi kích thước hình ảnh để phù hợp với vòng tròn bên trong từ bất kỳ kích thước cụ thể nào và đặt nó trong vòng tròn nếu biết điểm trung tâm.

Đối với một câu hỏi dễ hơn, tôi thường đưa ra cùng một loại câu hỏi, nhưng sử dụng ví dụ "hình vuông trong một hình tròn trong hình vuông". Mặc dù điều này rất dễ dàng, vì vậy tôi mong đợi đại số hoàn hảo về nó.

Hình vuông bên trong hình tròn bên trong hình vuông

Hơn thế nữa, tôi có xu hướng yêu cầu họ đưa ra một thuật toán để tạo ra tất cả các kết hợp của một tập dữ liệu có độ dài thay đổi.


1
Câu trả lời cho a) là 128,75? (không biết tôi có làm gì sai không). Tôi thích nó, nhưng nó nhiều hơn về hình học mặc dù.
Hoàng Long

2
Ngoài ra, xin lỗi vì sự chậm trễ trong việc bình luận. Tôi không muốn downvote như một quy tắc và gấp đôi như vậy mà không bình luận về lý do tại sao. Downvote của tôi không phải là về bản thân câu hỏi, nó chắc chắn có mục đích cho bạn, tôi chỉ không nghĩ rằng nó có một bối cảnh thích hợp trong một cuộc phỏng vấn lập trình.
Philip Regan

7
-1 vì hình học là một ứng cử viên tốt cho Học tập đúng lúc và không phản ánh khả năng của tôi để tạo ra phần mềm chất lượng.
Malfist

2
Tôi rất thích vấn đề này. Tôi hy vọng bạn không phiền khi tôi chia sẻ giải pháp của mình cho phần (a). Đường kính khác nhau 9cm, vì vậy nếu vòng tròn bên trong có bán kính r thì vòng tròn bên ngoài có bán kính r + 4,5. Diện tích của hình lưỡi liềm là sự khác biệt trong các khu vực của các vòng tròn: pi (r + 4,5) ^ 2 - pi * r ^ 2. Tất cả chỉ còn lại là tìm r. Xác định C là điểm (0,0), sau đó điểm E nằm tại (0, r - 0,5) (vì CE nhỏ hơn 5cm so với bán kính lớn hơn). Vòng tròn bên trong được dịch chuyển sang phải 4,5cm, do đó phương trình của nó là (x - 4,5) ^ 2 + y ^ 2 = r ^ 2. Cắm vào (x, y) = (0, r - 0,5) và giải cho r.
Tim Goodman

2
+1 vì tôi nghĩ đó là một câu hỏi hay cho một công việc đòi hỏi hình học. Có rất nhiều lý do liên quan, không chỉ cắm vào một công thức. Điều đó nói rằng, tôi biết một số lập trình viên giỏi đã bị vấp ngã chỉ vì họ không nghĩ nhiều về vòng tròn trong 10 năm - nhưng câu hỏi không đặt ra câu hỏi phù hợp cho bất kỳ cuộc phỏng vấn nào của nhà phát triển. Câu hỏi SQL được bình chọn hàng đầu hiện nay (mà tôi cũng thích) ít nhất là theo công việc cụ thể.
Tim Goodman

3

Các câu trả lời hay nhất của FizzBuzz tôi từng thấy là:

Máy chủ SQL 2008

;WITH mil AS (
 SELECT TOP 100 ROW_NUMBER() OVER ( ORDER BY c.column_id ) [n]
 FROM master.sys.all_columns as c
 CROSS JOIN master.sys.all_columns as c2
)                
 SELECT CASE WHEN n  % 3 = 0 THEN
             CASE WHEN n  % 5 = 0 THEN 'FizzBuzz' ELSE 'Fizz' END
        WHEN n % 5 = 0 THEN 'Buzz'
        ELSE CAST(n AS char(6))
     END + CHAR(13)
 FROM mil

C # (đơn giản)

foreach (int number in Enumerable.Range(1, 100))
{
    bool isDivisibleBy3 = (number % 3) == 0;
    bool isDivisibleBy5 = (number % 5) == 0;

    if (isDivisibleBy3)
         Console.Write("Fizz");

    if (isDivisibleBy5)
         Console.Write("Buzz");

    if (!isDivisibleBy3 && !isDivisibleBy5)
         Console.Write(number);

    Console.WriteLine();
}

C # (thông minh)

 Enumerable
  .Range(1, 100)
  .Select(i =>
    i % 15 == 0 ? "FizzBuzz" :
    i % 5 == 0 ? "Buzz" :
    i % 3 == 0 ? "Fizz" :
    i.ToString())
  .ToList()
  .ForEach(s => Console.WriteLine(s));

1
Bạn có thể muốn thêm phương ngữ SQL cụ thể nào được viết bằng.

Nhìn đẹp với phong cách chức năng.
Orble

2

Tôi tìm kiếm một vài điều trong các ứng cử viên mà tôi đã phỏng vấn. Vì lý do tôi không thể mô tả trực tuyến, chúng tôi nhận được các ứng cử viên khá nghèo và tôi đã mong đợi điều đó, vì vậy tôi khá dễ dàng với họ. Thậm chí, tôi vẫn tìm:

  • Nhận thức về thiết kế.

    "Hiển thị cho tôi cấu trúc bảng cho chương trình sổ địa chỉ có Danh bạ có tên và họ có thể có nhiều Số điện thoại với mô tả về số (ô / nhà / cơ quan / v.v.)"

    Tôi không tìm kiếm một sơ đồ đặc tả UML 2.0 ở đây, một sơ đồ bong bóng đơn giản ở đây là tốt. Miễn là nó hợp lý.

  • Kiến thức làm việc với cơ sở dữ liệu (ví dụ: SQL)

    1. Viết một truy vấn để có được tất cả các số điện thoại cho những người có tên cuối cùng "smith"
    2. Viết một truy vấn để có được tất cả các khách hàng trong cơ sở dữ liệu và các số điện thoại cho những người có tên cuối cùng "smith"
  • Kiến thức về kiểm tra

    Giả sử một phương thức có chữ ký public IEnumerable<PhoneNumber> GetPhoneNumbers(string lastName)tồn tại trả về kết quả truy vấn của bạn từ trước đó. Giả sử rằng nếu bạn truyền null vào phương thức, nó sẽ ném NullReferenceException. Viết một bài kiểm tra để chứng minh chức năng này.

    Viết bài kiểm tra chứng minh rằng GetPhoneNumbers sẽ trả về số điện thoại nhà là (123)456-7890 cho người có tên cuối cùng là "smith".

  • Kiến thức về cách viết một số mã

    Thực hiện một phương pháp sẽ đáp ứng các yêu cầu của các bài kiểm tra bạn đã viết.


Xem xét số lượng và chất lượng của các ứng viên chúng tôi đã nhận được, tôi đã phỏng vấn tất cả những người từng áp dụng nghiêm túc. Tôi đã thuê không ai.


Trong SQL # 2, bạn có nói về việc thực hiện tất cả trong một truy vấn này không? Là mục đích chỉ để đánh giá sự hiểu biết về các liên kết trái / phải hoặc bên trong?
Nicole

@Renesis: Đúng vậy.
Steven Evers

2

Tôi thường để họ phác thảo sơ đồ khối của hệ thống cuối cùng mà họ đã làm việc, hỏi về mối quan hệ giữa các khối và hơn là để họ giải thích về khối mà họ đang làm việc / phụ trách. Bạn có thể học được nhiều điều từ bài tập này, như cách người ta nhìn xa hơn phạm vi nhỏ của anh ta, điều quan trọng với anh ta là biết anh ta đang diễn ở đâu, bạn cũng có thể tìm hiểu về vai trò của mình, đó là chìa khóa hay phụ vai trò.


2

Viết một thuật toán cho bài toán sau: Cho một số n , xuất ra tổng số cây nhị phân (duy nhất) có n nút.

Do đó, với n = 0 và n = 1, câu trả lời là 1. Với n = 2, bạn có 2: nút gốc, và sau đó nút thứ hai ở bên trái hoặc bên phải.

Bạn có thể hiểu rõ hơn về các kỹ thuật thiết kế và để xem liệu họ có nghĩ đến đệ quy hoặc ghi nhớ hoặc giải pháp lập trình động hay không.

[Xem thêm cuộc thảo luận StackOverflow này để biết trường hợp cây tìm kiếm nhị phân có liên quan, nhưng khác nhau.]


Vì vậy, một lập trình viên UI không biết lập trình động là một lập trình viên tồi? Đối với cái quái gì, bất kỳ lập trình viên kinh doanh nào không thể nhớ lại lập trình động là xấu? Rất nhiều thanh thiếu niên tại topcoder sẽ giải quyết vấn đề lập trình động nhưng xin vui lòng xem mã họ viết.
Geek

@Geek: Hãy nhớ rằng các vấn đề "bảng trắng" là một cách để xem quá trình suy nghĩ của ai đó. Các vấn đề lập trình động nên thuộc về cuộc thảo luận này, vì chúng rất phổ biến với Google, trong số những vấn đề khác.
Macneil

Tôi không đồng ý nhưng tôi có hai câu hỏi. 1. Giải những điều chưa biết? Vấn đề DP trở thành một cuộc dạo chơi trong công viên nếu bạn đã giải quyết một số vấn đề trong quá khứ gần đây hoặc bạn vẫn còn nhớ khái niệm ra khỏi trường đại học. Một người đã quên nó chắc chắn sẽ không làm tốt trên bảng trắng. 2. Nếu ai đó đang vật lộn để giải quyết vấn đề, không có cách nào bạn có thể định lượng được chất lượng mã của anh ta. Điều gì về việc đưa ra một vấn đề trên một cái gì đó như LinkList hoặc Chuỗi hoặc Mảng sao cho người đó có thể giải quyết vấn đề và viết mã.
Geek

Tôi cũng không nhất thiết mong đợi một người được phỏng vấn sẽ làm cho đúng, tuy nhiên, một số công ty sẽ làm.
Macneil

@Geek: “một ... lập trình viên người không biết lập trình năng động là một lập trình viên xấu?” - vâng . Điều đó nói rằng, tôi đồng ý rằng suy nghĩ trong lập trình động không phải là nhỏ khi bạn không quen với nó. Nhưng biết nó là một điều tuyệt đối phải.
Konrad Rudolph

2

Nếu tôi phỏng vấn một nhà phát triển phần mềm, tôi sẽ yêu cầu anh ta thiết kế một phần mềm và mô tả các yêu cầu phần cứng để xóa các mục trùng lặp khỏi một tệp lớn tùy ý chứa tên đầy đủ trên mỗi dòng. Tôi để lại một số phần của mô tả vấn đề mơ hồ có chủ đích. Sau đó, tôi thách thức anh ta xem anh ta có hiểu phân tích và làm rõ các yêu cầu, sự đánh đổi khác nhau, cấu trúc dữ liệu và thuật toán, I / O (lưu trữ thứ cấp), công nghệ phần mềm và phần cứng, khả năng mở rộng, v.v.

Tôi nghĩ rằng đây là một vấn đề nhỏ nhưng đầy thách thức, tiết lộ kiến ​​thức và khả năng của ứng viên trong nhiều lĩnh vực điện toán.


2

Implement function/method(on c/c++/c# whatever), which calculates n-th item of Fibonacci sequence

Nhiều kẻ có thể mắc kẹt về điều này. Nếu một số giải pháp được đưa ra - thường thì nó sử dụng đệ quy. Sau đó:

Implement the same via 'for'-loop

Không thể cho bạn biết, có bao nhiêu nghiên cứu sinh không hoàn thành cả hai nhiệm vụ - 50% ứng cử viên.
Đó là lý do tại sao tôi thích nó :)


Điều gì xảy ra nếu việc thực hiện đầu tiên được thực hiện thông qua một vòng lặp for?
Đêm tối

2
Phiên bản đệ quy được đề xuất để thực hiện. Thông thường sau khi các vòng lặp for thực hiện thành công phiên bản đệ quy.
alexb

Hoặc bạn có thể thực hiện điều này như một tuyên bố duy nhất : fib(n)=round(power(PHI,n)/SQRT5). PHI và SQRT5 là các hằng số biểu thị tỷ lệ vàng (1.618 ...) và căn bậc hai của 5, tương ứng.
oosterwal

2

Đối với cơ sở dữ liệu tôi đi với:

Bảng: Điều

Tên ID
1 sừng Vankin
2 Hoos-Foos
3 Hoos-Foos
4 cú sút nóng
5 Mặt Marvin O'Gravel Balloon
6 Snimm
7 Mặt Marvin O'Gravel Balloon
8 Mặt Marvin O'Gravel Balloon
9 Dave

Viết cho tôi một số SQL sẽ sao chép lại một bảng như thế này dựa trên tên (và tôi không quan tâm ID nào tôi nhận được nhưng cái nào được trả về phải hợp lệ cho tên đó). Vì vậy, bảng một khi SQL chính xác đã được áp dụng cho nó sẽ hiển thị một cái gì đó như:

Bảng: Điều

Tên ID
1 sừng Vankin
2 Hoos-Foos
4 cú sút nóng
5 Mặt Marvin O'Gravel Balloon
6 Snimm
9 Dave

Tôi thích nó bởi vì:

  • Khử trùng lặp là một vấn đề trong thế giới thực
  • Có rất nhiều cách để làm điều đó
  • Tôi nghĩ rằng hầu như tất cả các cách đó đều cần bạn hiểu (hơi) SQL phức tạp hơn (về cơ bản là NHÓM THEO và HAVING) hoặc khả năng suy luận thông qua nhiều câu lệnh đơn giản hơn.
  • Vì chút cuối cùng này ngay cả khi họ đang vật lộn với cú pháp hay bất cứ điều gì, bạn có thể hỏi họ xem họ đang nghĩ gì và nói chuyện theo cách đó.
  • Nó tham khảo Tiến sĩ Seuss

(Đây là nơi tôi thấy rằng có một số cách hoàn toàn tầm thường để làm điều này và tôi đã quá phức tạp trong suốt những năm qua).


1
Tôi đoán tôi không biết cái gì được coi là "hoàn toàn tầm thường" ... Một cái gì đó giống như SELECT min(ID), Name FROM Things GROUP BY Namesẽ hoạt động, phải không?
Tim Goodman

@Tim - Điều đó mang lại cho bạn số đếm cho tất cả mọi thứ. Tôi chỉ muốn những người có bản sao. Chỉnh sửa thủ công các kết quả không được tính, giả sử nó được chia thành hàng triệu hàng. Đây là một vấn đề dễ dàng nhưng theo kinh nghiệm của tôi, 80% những người tuyên bố biết SQL không thể đi xa đến mức đầu tiên của bạn.
Jon Hopkins

@Jon: Không chắc ý của bạn là gì bởi "Điều đó mang lại số lượng cho tất cả mọi thứ". Từ giải pháp ví dụ của bạn, có vẻ như những gì bạn muốn là một hàng cho mỗi tên riêng biệt. Từ ý kiến ​​của bạn, có vẻ như bạn có thể có ý gì đó HAVING count(Name) > 1, nhưng sau đó tôi đoán câu trả lời mẫu của bạn nên bỏ qua Bodkin Van Horn, Hot Shot, Snimm và Dave.
Tim Goodman

@Tim - Bạn nói đúng, nó thực sự không rõ ràng. Tôi sẽ chỉnh sửa khi tôi nhận được một vài phút.
Jon Hopkins

1
Tôi đoán tôi sẽ làm điều này : DELETE FROM Things WHERE ID NOT IN (SELECT MIN(ID) FROM Things GROUP BY Name). Bạn có một giải pháp ưa thích?
Tim Goodman

2

Vấn đề bảng trắng C ++ yêu thích của tôi là để ứng viên thực hiện

Vector3 a(1, 0, 0), b(0, 1, 0); // Mathematical 3D vectors
double c = 7.0;
double d = a * c;
Vector3 e = a * b;

Từ đây tôi có thể học

  • nếu ứng viên nhận ra rằng bạn không thể quá tải đối với loại trả về (dấu hiệu của C ++ cấp độ juniour)
  • nếu ứng viên biết cách trả về một toán tử đúc tạm thời và thực hiện các toán tử đúc (chỉ ra mức trung cấp C ++)
  • nếu ứng viên có thể làm toán vector cơ bản (quan trọng đối với miền ứng dụng của chúng tôi)

2

Làm thế nào bạn sẽ đại diện cho một bộ bài 52 tiêu chuẩn? Bất kỳ ngôn ngữ lập trình là tốt. Làm thế nào bạn sẽ xáo trộn các thẻ?


vectơ <Thẻ> với chức năng xáo trộn của C ++ :)
đúng vào

1

Yêu thích của tôi là bắt đầu với việc hỏi nguyên mẫu của printf. Sau đó được cung cấp một printc API cấp thấp (char c), sẽ in một ký tự, thực hiện printf. Cung cấp tất cả các loại phản hồi thú vị như ngăn xếp là một phần của CPU. Như bạn có thể đoán tôi đến từ nền C và nhúng.


Tôi không nhận được "stack là một phần của CPU".
barjak

Bất cứ ai biết bất cứ điều gì về kiến ​​trúc máy tính sẽ biết điều đó. Đối với tôi nó hoàn toàn không liên quan, vì vậy anh chàng đang thể hiện sự thiếu hiểu biết của mình.
Michael K

@au lương: Nếu tôi nhớ chính xác, bạn phải gọi varargs()hoặc một số chức năng như thế. Tôi có đúng không? Tôi chỉ làm điều đó một lần để nói rằng tôi đã làm điều đó một thời gian trước đây.
Michael K

@barjak - Khi bạn bắt đầu triển khai printf, bạn sẽ cần truy cập vào ngăn xếp của mình và tôi đã nhận được phản hồi rằng ngăn xếp đó nằm trong CPU.
aufather

@Michael - Trong thế giới nhúng, bạn cần biết kiến ​​trúc nền tảng của mình thực sự tốt. Vì vậy, câu hỏi này nhanh chóng loại bỏ những người thiếu hiểu biết khá sớm.
aufather

1

Bạn có một cái bát với 200 con cá trong đó. Trong số những con cá này 99% không phải là cá bảy màu. Bạn nên loại bỏ bao nhiêu con cá để 2% số còn lại là cá bảy màu. Chỉ ra công việc của bạn.

Đây là về các yêu cầu khó hiểu. Người ta nói cách này để thay đổi quan điểm nhiều lần trong cùng một câu hỏi. Nó có nghĩa là để xem nếu họ có thể tìm ra những gì đang thực sự xảy ra.

Bạn sẽ ngạc nhiên khi có nhiều người hiểu sai.


4
Thêm hai giải Oscar 12 inch vào bát, họ sẽ loại bỏ 98% số cá bảy màu rất sớm.
Geek

Điều gì xảy ra nếu bạn loại bỏ một con cá bảy màu?

1
Cá bảy màu 1%, = 200 x 1% = 2 (200-2 = 198 cá khác), trong đó 2 = 2%, cá còn lại = 98% = 98 (1: 1). 98 = 198 - 100 => answer = 100. [Giả sử bạn có thể chọn lọc những con cá khác. Nếu loại bỏ cá bảy màu, có những câu trả lời khác.] Câu hỏi hay, bạn sẽ ngạc nhiên khi có ít người xử lý tốt điều đó, mặc dù đó là trò chơi trẻ con dành cho lập trình viên.
Orble

1

Tôi có một vài mục yêu thích, nhưng đây là một cặp đôi gần như luôn luôn xuất hiện. Hầu hết thời gian tôi đang thực hiện các cuộc phỏng vấn kỹ thuật vòng cuối (C ++) để ưu tiên các câu hỏi dài hơn và cởi mở hơn dẫn đến các lĩnh vực mới quan tâm. Không có câu trả lời "đúng", chỉ là mở đầu cho cuộc trò chuyện khác.

1) Thực hiện một con trỏ chia sẻ cơ bản, giải thích về những thiếu sót so với các con trỏ được chia sẻ của tr1 hoặc boost trong việc triển khai, cách sử dụng nó, v.v.

2) Một đánh giá mã. Đối với những người có kinh nghiệm, chúng tôi hy vọng họ có thể tự tin xem xét một số mã được cung cấp cho các vấn đề thiết kế, lỗi, nỗi kinh hoàng mã hóa và các vấn đề về khả năng bảo trì tiềm năng. Ngoài ra, tất nhiên, làm thế nào họ sẽ sửa nó; và đôi khi họ sẽ gửi thông điệp đó cho nhà phát triển cơ sở mà họ đang bắn hạ.


1

Một câu hỏi mà tôi đã sử dụng kể từ khi nó được sử dụng cho tôi là:

Viết hàm để in tất cả các số từ 1 đến 100.

Một phần lớn lý do mà tôi đã sử dụng nó là do thực tế là sau đó bạn có thể đưa giải pháp đó và di chuyển theo nhiều hướng khác nhau:

Làm thế nào bạn có thể sửa đổi chức năng để in tất cả các số từ 1 đến 1000, 10000 hoặc n ?

Câu trả lời của họ cho những câu hỏi này có thể cung cấp cho bạn cái nhìn sâu sắc về cách họ đáp ứng với các yêu cầu thay đổi cũng như liệu họ có thể nhận ra các cân nhắc về hiệu suất. Một ứng cử viên mạnh có thể trả lời bằng một câu hỏi liên quan đến chức năng cần thiết cho mức độ thường xuyên được gọi.

Di chuyển theo một hướng khác:

Làm thế nào bạn sẽ thay đổi mọi thứ nếu bạn biết chức năng này sẽ được gọi nhiều lần trong một phút và hiệu suất là một mối quan tâm?

Tôi sử dụng điều này như một cách để kiểm tra suy nghĩ bên của họ. Vì việc tính các số nguyên tố có thể chậm khi giá trị tối đa trở nên lớn hơn nên đôi khi có ý nghĩa hơn khi chỉ sử dụng một số loại bảng tra cứu được tính toán hoặc tính toán trước được điều chỉnh trên cơ sở vấn đề bạn đang cố gắng giải quyết.


1

Đây là một điều để kích thích một số suy nghĩ - Nó đơn giản, liên quan đến một chút toán học và kiểm tra kiến ​​thức của ứng viên về thiết kế máy tính cơ bản (tràn, biểu diễn số, v.v.):

Viết chương trình (hoặc thủ tục) lấy một cặp số nguyên X, Y làm đầu vào và xác định xem X * Y có chia hết cho 10. LƯU Ý QUAN TRỌNG: X và Y có thể đủ lớn để X * Y tràn vào loại số nguyên lớn nhất hiện có trên máy của bạn.


Giải pháp mẫu:


T_BOOL MultipleOfTen(int x, int y)
{
    return((x%2==0 || y%2==0) && (x%5==0 || y%5==0));
}

0

Điền vào phương thức sau: PS Chế độ của một số là số (trong danh sách) có nhiều lần xuất hiện nhất.

public int getMode(List<Integer> numberList) {


}

Đây là để xem effecient là mã của bạn.


-2

Làm thế nào bạn đại diện cho một ma trận dự phòng tương đối lớn ... giả sử 1000x1000 nhưng có nhiều nhất 100 mục nhập khác không?

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.