Bạn được cung cấp một tệp chứa tất cả các số có thể có trên kiến ​​trúc 32 bit. 4 số bị thiếu trong tập tin đó. Tìm 4 số còn thiếu


22

Đây là một câu hỏi phỏng vấn mà tôi đã chạy qua một vài lần và tôi thực sự không biết làm thế nào để giải quyết nó nếu thiếu bốn số. Tôi quen thuộc với các thuật toán để tìm một hoặc hai số bị thiếu, nhưng tôi không thấy cách nào để khái quát một trong hai số đó thành bốn.


Câu trả lời:


19

Cho dù đó là cho một cuộc phỏng vấn hoặc công việc thực tế, ưu tiên hàng đầu của bạn cần là một giải pháp làm việc có ý nghĩa với bạn . Điều đó thường có nghĩa là bạn nên đưa ra giải pháp đầu tiên mà bạn có thể nghĩ đó là đơn giản và dễ dàng để bạn giải thích.

Đối với tôi, điều đó có nghĩa là sắp xếp các con số và quét các khoảng trống. Nhưng, tôi làm việc trên các hệ thống kinh doanh và ứng dụng web. Tôi không nghịch ngợm với bit, và tôi không muốn đội của mình làm thế!

Nếu bạn đang phỏng vấn cho một công việc cấp thấp, gần gũi hơn với kim loại, "sắp xếp" có thể sẽ gặp phải những ánh mắt trống rỗng. Họ muốn bạn có những suy nghĩ thoải mái về bit và vv. Câu trả lời đầu tiên của bạn nên có, "Ồ, tôi sẽ sử dụng Bitmap." (Hoặc mảng bit hoặc tập bit.)

Và sau đó, dù bằng cách nào - ngay cả khi bạn đưa ra giải pháp "sai", nếu người phỏng vấn (hoặc sếp của bạn!) Nhấn vào đó , bạn có thể đề xuất một số cải tiến hoặc giải pháp thay thế, tập trung vào lĩnh vực quan tâm cụ thể của người quản lý.

  • RAM hạn chế nghiêm trọng? Dưới 512MB?
    Sắp xếp nó tại chỗ, trên đĩa. Bạn có thể sử dụng một lượng RAM chủ yếu tùy ý để tối ưu hóa và / hoặc các khối được sắp xếp bộ đệm.
  • Thời gian giới hạn?
    Sử dụng RAM đó! Sắp xếp rồi O(n*log(n)). (Hoặc O (n) cho loại thùng số nguyên!)
  • Bảo trì?
    Điều gì có thể dễ dàng hơn so với sắp xếp?!
  • Không thể hiện kiến ​​thức về cờ / trường bit? ( BitSet/ BitMap/ BitArray)
    Vâng OK ... hãy tiếp tục và sử dụng a BitArrayđể gắn cờ "số tìm thấy." Và sau đó quét tìm 0.
  • Dự đoán độ phức tạp "thời gian thực"?
    Sử dụng giải pháp bitmap. Đó là một lần vượt qua tập tin và một lần nữa vượt quaBitArray/BitSet(để tìm0's). Đó làO(n)tôi nghĩ vậy!

Hay bất cứ cái gì.

Giải quyết các mối quan tâm bạn thực sự có. Chỉ cần giải quyết vấn đề trước, sử dụng các giải pháp ngây thơ nếu cần thiết. Đừng lãng phí thời gian của mọi người để giải quyết những lo lắng chưa tồn tại.


Tôi không chắc chắn về tính khả thi của việc sắp xếp 4 tỷ số với cách tiếp cận ngây thơ, nói gì đến đĩa. Chưa bao giờ thử nó, mặc dù.
Eiko

1
@Eiko Chà ... và một lần nữa, điểm chính là ... đừng quá phức tạp hóa mọi thứ. Bước đầu tiên là chỉ giải quyết vấn đề, bất kỳ cách nào bạn có thể nghĩ để giải quyết nó, ngay cả khi nó ngây thơ. Tôi thậm chí không thể nhấn mạnh mức độ thất vọng của chủ nhân tương lai của bạn nếu bạn dành thời gian lặp đi lặp lại để đảm bảo bạn có giải pháp "đúng" khi doanh nghiệp chỉ cần một giải pháp. Chứng minh rằng bạn có thể làm cả hai! Chứng minh rằng bạn có thể giải quyết vấn đề nhanh chóng, sau đó xác định các vấn đề tiềm ẩn đáng để tái cấu trúc và / hoặc tối ưu hóa khi cần thiết .
Svidgen

1
@Ewan "Bởi vì bạn đã có câu hỏi được đưa ra khi phỏng vấn" không giống như, "Có một câu trả lời cụ thể mà mọi người quản lý đang tìm kiếm." ... Tôi chắc chắn sẽ không quan tâm giải pháp nào bạn đưa ra cho tôi, miễn là bạn thể hiện khả năng giải quyết vấn đề và không bị bắt kịp khi giải quyết vấn đề mà tôi chưa bao giờ đưa ra cho bạn!
Svidgen

1
Bạn đang thiếu điểm. Câu hỏi này và các biến thể của nó xảy ra trong sách câu đố lập trình và câu hỏi phỏng vấn. Nó không được tạo ra bởi người đặt câu hỏi. công cụ 32 bit được cho là không thể thực hiện được bằng cách theo dõi các con số hoặc sắp xếp. Nó chỉ là máy tính đã nhanh hơn / lớn hơn kể từ khi nó được viết.
Ewan

1
@Ewan: bạn vẫn cho rằng ví dụ về câu hỏi của bạn có các ràng buộc giống như OP. OP không nói rằng thuật toán của anh ta phải chạy trên máy 32 bit, anh ta thậm chí không nói rằng nó phải chạy trên máy tính, một thuật toán khái niệm có thể phù hợp. Anh ta cũng không nói rõ "tất cả các số có thể" nghĩa là gì, vì toán học số nguyên có kích thước tùy ý có thể có trên các bộ vi điều khiển 8 bit. Khá nhiều giả định bạn đang đưa ra để đưa ra những tuyên bố tuyệt đối.
whatsisname

19

Vì đó là một tệp, tôi giả sử bạn được phép thực hiện nhiều lượt. Đầu tiên tạo một mảng gồm 256 bộ đếm, lặp qua tệp và với mỗi số tăng, bộ đếm được lập chỉ mục là byte đầu tiên của số. Khi bạn hoàn thành, hầu hết các bộ đếm nên ở mức 2 ^ 24, nhưng 1 đến 4 bộ đếm nên có giá trị thấp hơn. Mỗi chỉ số này biểu thị một byte đầu tiên của một trong các số bị thiếu (nếu có ít hơn 4 số đó vì nhiều số bị thiếu chia sẻ cùng một byte đầu tiên).

Đối với mỗi chỉ số này, hãy tạo một mảng khác gồm 256 bộ đếm và thực hiện lần thứ hai trên tệp. Lần này, nếu byte đầu tiên là một trong các giá trị từ trước, hãy tăng bộ đếm trong mảng dựa trên byte thứ hai . Khi bạn đã hoàn tất, hãy tìm lại các bộ đếm thấp hơn 2 ^ 16 và bạn sẽ có byte thứ hai của các số bị thiếu, mỗi số được khớp với byte đầu tiên.

Làm lại cho byte thứ ba (lưu ý rằng bạn cần tối đa 4 mảng trong mỗi lần truyền, mặc dù mỗi byte có thể được theo sau bởi tối đa 4 byte khác nhau) và cho byte thứ tư, và bạn đã tìm thấy tất cả các số bị thiếu.

Độ phức tạp thời gian - Độ phức tạp O(n * log n)
không gian - không đổi !

Chỉnh sửa:

Trên thực tế, tôi coi đó n=2^32là tham số, nhưng số lượng thiếu k=4cũng là một tham số. Giả sử k<<nđiều này có nghĩa là sự phức tạp không gian là O(k).

Cập nhật:

Chỉ để giải trí (và vì hiện tại tôi đang cố gắng học Rust) Tôi đã triển khai nó trong Rust: https://gist.github.com/idanarye/90a925ebb2ea57de18f03f570f70ea1f . Tôi đã chọn để có một đại diện bằng văn bản, vì một người sẽ chạy nó với ~ 2 ^ 32 số ...


Giữ tất cả các số trong bộ nhớ (cho nhiều lượt đi) cần 4 byte * 2 ^ 32 bộ nhớ, điều này đang đẩy mọi thứ. Vì vậy, nhiều khả năng bạn sẽ thực hiện tất cả I / O bốn lần. Nhưng bộ nhớ khác được sử dụng là vô cùng nhỏ, công việc tuyệt vời ở đó.
dùng949300

1
@ user949300 Tôi giả sử giải pháp này đọc từng mảnh tệp thay vì tải toàn bộ vào bộ nhớ cùng một lúc
Richard Tingle

"hầu hết các bộ đếm nên ở mức 2 ^ 24, nhưng 1 đến 4 bộ đếm nên có giá trị thấp hơn" - sai: có thể là 0, với tất cả các giá trị bị thiếu chia sẻ byte đầu tiên (cũng có thể thứ hai và thứ ba). Tiếp theo: bạn tạo bao nhiêu mảng trong lần thứ hai? 256, 1 đến 4 lần 256, 256 lần 256? Và sau đó trong lần thứ ba trở đi?
Bernhard Hiller

3
@BernhardHiller Tệp chứa tất cả các số có thể có trong không gian 32 bit, lưu cho 4 số riêng biệt. Như vậy, tất cả các byte đầu tiên sẽ xảy ra, chỉ 1 đến 4 trong số chúng sẽ có ít lượt truy cập hơn.
Lasse V. Karlsen

@ LasseV.Karlsen cảm ơn, giờ tôi đã hiểu thuật toán.
Bernhard Hiller

6

Nếu đây là Java, bạn có thể sử dụng BitSet. Chà, hai trong số chúng, vì chúng không thể giữ được tất cả các số 32 bit. Mã xương, có lẽ là lỗi:

BitSet bitsetForPositives = new Bitset(2^31);  // obviously not 2^31 but you get the idea
BitSet bitsetForNegatives = new Bitset(2^31);

for (int value: valuesTheyPassInSomehow) {
  if ((value & 0x80000000) == 0)
     bitsetForPositives.set(value );
  else
     bitsetForNegatives.set(value & ~0x80000000);
}

Sau đó sử dụng BitSet.nextClearBit()để tìm người mất tích.

Lưu ý thêm nhiều sau:

Lưu ý rằng với thuật toán này, việc chạy song song phần tốn thời gian là khá dễ dàng . Nói rằng tập tin gốc đã được chia thành bốn phần gần bằng nhau. Phân bổ 4 cặp BitSets (2GB, vẫn có thể quản lý được).

  1. Có bốn luồng, song song, mỗi tiến trình xử lý một tệp thành cặp BitSets riêng.
  2. Khi hoàn tất, quay lại một chuỗi hoặc Bitsets (thời gian không quan trọng), sau đó gọi nextClearBit bốn lần (cũng là thời gian khá nhỏ).

Tôi hy vọng I / O vẫn là bước giới hạn tốc độ, nhưng nếu kỳ diệu thì tất cả các con số đều nằm trong bộ nhớ, bạn thực sự có thể tăng tốc mọi thứ.


3
@Idan Ayre. Giải pháp này đòi hỏi ít mã, do đó ít có khả năng xảy ra lỗi mã hóa. Tôi xinh đẹp đây là thời gian O (n). Nó cũng không giả định / yêu cầu nhiều lượt đi qua một tệp lớn, vì vậy nó sử dụng ít không gian hơn thuật toán yêu cầu nhiều lượt đi. Hãy giải thích những gì bạn có nghĩa là "Ôi trời ơi".
dùng949300

2
Không xử lý Integer.MIN_VALUEchính xác. Bạn có thể che dấu bit thay vì phủ định để sửa nó.
CodeInChaos

1
Cách tiếp cận ngây thơ này cần 2 ^ 32 bit = 4 Gib = 512 MiB cho các bit, đây là một lượng RAM khiêm tốn, ngay cả trên hệ thống 32 bit.
CodeInChaos

Nếu ngôn ngữ lựa chọn không có các bit dựng sẵn, hãy mô phỏng chúng bằng cách sử dụng một mảng byte. Ví dụ: trong C #:bool GetBit(byte[] byteArray, uint index) { var byteIndex = index >> 3; var bitInByte = index & 7; return (byteArray[byteIndex] >> bitInByte) & 1 != 0; }
CodeInChaos

1
@JoulinRouge (và JacquesB) Vì vậy, chúng tôi đồng ý rằng đây là tuyến tính theo thời gian, sử dụng RAM khiêm tốn (1/2 Gig) và chỉ mất một lần I / O. Làm việc cho tôi.
dùng949300

5

Câu hỏi này có thể được giải quyết bằng cách sử dụng một mảng bit (đúng / sai). Đây phải là cấu trúc hiệu quả nhất để giữ câu trả lời cho tất cả các số sử dụng chỉ mục của mảng để giữ xem số đó có được tìm thấy hay không.

C #

var bArray = new BitArray(Int32.MaxValue);

//Assume the file has 1 number per line
using (StreamReader sr = File.OpenText(fileName))
{
        string s = String.Empty;
        while ((s = sr.ReadLine()) != null)
        {
            var n = int32.Parse(s);
            bArray[n] = true;
        }
}

Sau đó, chỉ cần lặp qua mảng và đối với những giá trị vẫn sai, chúng không có trong tệp.

Bạn có thể chia tập tin thành các phần nhỏ hơn nhưng tôi có thể phân bổ một mảng kích thước tối đa int32 (2147483647) trên máy tính xách tay 16.0 GB của tôi chạy Windows 7 (64 bit).

Ngay cả khi tôi không chạy 64 bit, tôi có thể phân bổ các mảng bit nhỏ hơn. Tôi sẽ xử lý trước tệp tạo một tập hợp các tệp nhỏ hơn với mỗi phạm vi [0-64000] [64001-128000], v.v. các số trong đó phù hợp với tài nguyên môi trường có sẵn. Đi qua tệp lớn và ghi từng số vào tệp được đặt tương ứng. Sau đó xử lý từng tệp nhỏ hơn. Sẽ mất nhiều thời gian hơn vì bước xử lý trước, nhưng điều này sẽ khắc phục được các hạn chế về tài nguyên nếu có nguồn lực hạn chế.


Điều này không xuất hiện để xử lý số âm. (Hoặc ints không dấu với tập bit cao nhất nếu đó là đầu vào.) Bộ nhớ cho bitet không phải là vấn đề ngay cả trên hầu hết các hệ thống 32 bit.
user949300

@ user949300 - Đúng. Tôi không nhận thấy bất kỳ mức tiêu thụ bộ nhớ lớn nào khi mảng được khởi tạo với tất cả các giá trị sai. Người ta sẽ cần một BitArray thứ cấp cho các số âm. Có thể bArrayNegative = new BitArrary (Int32.MaxValue). Khi số được đọc, nó có thể được kiểm tra dương hay âm và sau đó đưa vào Mảng Bit thích hợp. Cảm ơn các ý kiến.
Jon Raynor

2

Vì đây là một câu hỏi phỏng vấn, tôi sẽ cho người phỏng vấn hiểu một số hạn chế. Sau đó, "tất cả các số có thể" có nghĩa là gì? Có thực sự là 0 ... 2 <(32-1) như mọi người đoán không? Kiến trúc 32 bit thông thường có thể hoạt động với nhiều hơn chỉ là số 32 bit. Rõ ràng đó chỉ là vấn đề đại diện.

Nó có được giải quyết trên hệ thống 32 bit hay không, hay đó là một phần của hạn chế về số lượng? Ví dụ: một hệ thống 32 bit thông thường sẽ không thể tải tệp vào RAM cùng một lúc. Tôi cũng đề cập rằng một hệ thống 32 bit thường sẽ không thể có một tệp chứa tất cả các số do giới hạn kích thước tệp. Chà, trừ khi nó có một số mã hóa thông minh, như "Tất cả các số trừ bốn số đó", trong trường hợp đó, vấn đề được giải quyết một cách tầm thường.

Nhưng nếu bạn thực sự muốn hiểu câu hỏi là "Đưa ra một tệp có tất cả các số từ 0 ... 2 ^ (32-1) ngoại trừ một số ít, hãy cho tôi một số còn thiếu" (và đây là một vấn đề lớn nếu !), Sau đó có nhiều cách để giải quyết nó

Không quan trọng nhưng không khả thi: Đối với mỗi số có thể, hãy quét tệp và xem nó có trong đó không.

Với 512 MB RAM và một lần chuyển qua tệp: đánh dấu mỗi số (= đặt bit tại chỉ mục đó) đọc từ tệp và sau đó chuyển RAM một lần và xem các số bị thiếu.


1
Một số câu hỏi hay, nhưng cho dù hệ thống 32 bit đại diện cho ints, float hay huzziwigs, nó vẫn chỉ có thể đại diện cho 2 ^ 32 giá trị trong 32 bit. Nếu câu hỏi là "oh yeah, chúng tôi cho phép 128 bit cực dài", thì "ràng buộc" kiến ​​trúc 32 bit trong câu hỏi là cố tình gây hiểu lầm. Tuy nhiên, một câu hỏi tuyệt vời để hỏi người phỏng vấn, bởi vì nhiều thông số kỹ thuật bị sai lệch hoặc viết kém. Giải pháp thực tế của bạn là một Bitset giống như của tôi.
dùng949300

@ user949300 Có - và không thể biết người phỏng vấn đang tìm kiếm cái gì. Nếu người cuối cùng họ thuê là một anh chàng "hack stack trước khi nghĩ", câu trả lời của bạn sẽ khác so với nếu đó là một anh chàng "hoàn toàn không biết gì về kiến ​​trúc" hay "chơi trò chơi tối ưu hóa". :) Tôi đã làm việc với các bitcoin lớn trước đây (mặc dù không phải bằng Java), vì vậy chúng xuất hiện trong tâm trí tôi một cách tự nhiên. Và có thể được thông qua cho bộ nhớ thấp hơn nếu cần thiết (xô). Các bit cũng giải quyết "vấn đề sắp xếp" trong các nhận xét ở trên theo thời gian tuyến tính với 512 MB RAM.
Eiko

0

Một cách tiếp cận dễ nhớ và dễ hiểu trong một cuộc phỏng vấn sẽ là sử dụng thực tế là nếu bạn nhìn vào tất cả các số trong N bit, mỗi bit sẽ được đặt chính xác bằng một nửa các giá trị đó và không được đặt trong nửa còn lại .

Nếu bạn lặp lại tất cả các giá trị trong tệp và giữ 32 số giá trị ở cuối, bạn sẽ kết thúc với 32 giá trị chính xác (2 ^ 32/2) hoặc thấp hơn một chút so với giá trị đó. Sự khác biệt tối đa (2 ^ 32/2) và tổng cung cấp cho bạn tổng số bit được đặt ở mỗi vị trí của các giá trị bị thiếu.

Khi bạn đã có điều đó, bạn có thể xác định tất cả các bộ 4 giá trị có thể có cho các tổng đó. Do đó, bạn có thể kiểm tra lại các giá trị trong tệp một lần nữa xem có bất kỳ giá trị nào là một phần của các kết hợp đó không. Khi bạn tìm thấy một, các kết hợp có chứa giá trị đó sẽ bị loại trừ dưới dạng khả năng. Khi bạn chỉ còn một kết hợp có thể, bạn có câu trả lời.

Ví dụ: sử dụng một nibble, bạn có các giá trị sau:

1010
0110
1111
0111
1101
1001
0100
0101
0001
1011
1100
1110

Tổng số bit được đặt ở mỗi vị trí là:

7867

Trừ đi những người từ 8 (4 ^ 2/2) chúng tôi nhận được:

1021

Điều đó có nghĩa là có 4 bộ giá trị sau:

1000
0000
0011
0010

1010
0001
0010
0000

(tha thứ cho tôi nếu tôi bỏ lỡ bất kỳ, tôi chỉ làm điều này bằng mắt thường)

Và sau đó nhìn vào các số ban đầu một lần nữa, chúng tôi tìm thấy 1010 ngay lập tức có nghĩa là tập đầu tiên là câu trả lời.


nhưng bạn phải tìm 4 số chứ không phải một số
freedev

@freedev Bạn đúng rồi. Đó là những gì nó làm. Một bộ bốn số là bốn số ... trong một bộ.
JimmyJames

Thú vị, nhưng bạn bóng hơn determine all the possible sets of 4 values that could give those totals. Tôi thực sự nghĩ rằng đây là một phần quan trọng của giải pháp còn thiếu trong câu trả lời của bạn. Nó cũng có thể ảnh hưởng đến thời gian và không gian phức tạp.
Allon Guralnek

@ ALLonGuralnek Bạn đã đúng. Tôi đã dành một ít thời gian để làm việc này và tôi đã đánh giá rất thấp bao nhiêu bộ 4 số sẽ cộng với cùng một số trong trường hợp xấu nhất. Tôi nghĩ rằng đây là một ý tưởng có thể cứu vãn được nhưng nó phức tạp hơn một chút so với những gì tôi đã trình bày ở đây. Tôi sẽ cập nhật với các chi tiết sau. Tôi đánh giá cao thông tin phản hồi.
JimmyJames

0

Giả sử rằng tệp được sắp xếp bằng cách tăng số lượng:

Đảm bảo rằng nó không chứa các số (2³²-4).
Bây giờ nếu tệp đã hoàn thành (hoặc nếu 4 số bị thiếu là 4 số cuối), đọc bất kỳ từ nào trong tệp ở vị trí N sẽ trả về giá trị khớp với N.

Sử dụng tìm kiếm phân đôi trên các vị trí [0..2³²-4-1) để tìm kiếm để tìm số X1 không mong đợi đầu tiên.
Khi đã tìm thấy số bị thiếu đầu tiên, hãy thực hiện tìm kiếm dichtotomy một lần nữa trên các vị trí [X1 .. (2³²-4-1)] để tìm số thứ hai bị thiếu, X2: Lần này, đọc một từ ở vị trí N sẽ trả về giá trị khớp N-1 nếu không còn số nào bị thiếu (vì bạn đã vượt qua một số bị thiếu).
Lặp lại tương tự cho hai số còn lại. Ở lần lặp thứ ba, đọc từ ở vị trí N sẽ trả về N-2 và ở lần thứ tư, nó sẽ trả về N-3.

Hãy cẩn thận: Tôi chưa thử nghiệm điều này. Nhưng tôi nghĩ nó nên hoạt động. :)

Bây giờ trong cuộc sống thực, tôi đồng ý với các câu trả lời khác: những câu hỏi đầu tiên sẽ là về môi trường. Chúng ta có RAM không (bao nhiêu), là tệp trên thiết bị lưu trữ truy cập trực tiếp, đây có phải là thao tác một lần (không yêu cầu tối ưu hóa) hay quan trọng (mỗi chu kỳ), chúng ta có sẵn tiện ích sắp xếp bên ngoài không , vv
Sau đó tìm một sự thỏa hiệp chấp nhận được cho bối cảnh. Điều này ít nhất cho thấy rằng bạn bắt đầu phân tích vấn đề trước khi tìm kiếm một thuật toán.


-2

Như với tất cả các câu hỏi tiêu chuẩn, giải pháp là google chúng trước khi phỏng vấn.

Câu hỏi và các biến thể này có câu trả lời 'chính xác' rất chắc chắn liên quan đến XORing tất cả các số. Nó được cho là để cho bạn thấy các chỉ mục trong cơ sở dữ liệu hoặc một cái gì đó. Vì vậy, không có điểm nào cho bất kỳ 'có thể hoạt động nhưng không phải là những gì nó nói trên tờ giấy' vô số.

Về mặt tích cực, có một bộ hữu hạn của những câu hỏi này một vài giờ sửa đổi sẽ khiến bạn trông giống như một thiên tài. Chỉ cần nhớ giả vờ rằng bạn đang làm việc đó trong đầu.

Chỉnh sửa. Ahh có vẻ như cho 4 có một cách tiếp cận khác với XOR

http://books.google.com.vn/books?id=415loiMd_c0C&lpg=PP1&dq=muthukrishnan%20data%20stream%20alacticms & hl

Chỉnh sửa. Downvoters: Đây là một giải pháp O (n) được xuất bản cho sách giáo khoa cho vấn đề chính xác được nêu trong OP.


1
Đáng chú ý, cuốn sách được liên kết này là tất cả về xử lý luồng. Đặc biệt, xử lý luồng trong các ràng buộc. Điều đó nói rằng, tôi chắc chắn sẽ tin rằng đây là nguồn gốc của câu hỏi mà OP đã thấy, vì nó khá tầm thường. Đáng chú ý hơn, bạn chưa thực sự trả lời câu hỏi. Bạn sẽ có +1 từ tôi nếu bạn có thể đặt ra một cách thuyết phục câu hỏi này là câu hỏi "ban đầu" hoặc "dự định" và giải thích giải pháp ... nhưng, điều này không trả lời bất cứ điều gì tương tự.
Svidgen

1
Câu trả lời này (trong một cuộc phỏng vấn) chỉ cho thấy rằng bạn đã đọc cuốn sách. Không có gì về kỹ năng hoặc quá trình suy nghĩ của bạn. Và làm thế nào để bạn "google tất cả các câu hỏi tiêu chuẩn " trước một cuộc phỏng vấn? Có một số danh sách hữu hạn "tất cả các câu hỏi từng được hỏi tại một cuộc phỏng vấn" mà tôi đã bỏ lỡ?
dùng949300

1
@ewan nó cũng nhấn mạnh sự khó khăn của việc tuyển dụng một ứng cử viên tốt! Nếu những người "tốt" chỉ đơn giản là chuẩn bị tốt cho các câu hỏi phỏng vấn ... Việc thuê một người thực sự có thể giải quyết các vấn đề kinh doanh của tôi trở nên khó khăn?
Svidgen

1
@ewan Để rõ ràng, tôi đã làm cho vui về dấu câu không chính xác của tôi . ... Trong mọi trường hợp, hãy nhớ rằng, tôi cũng đã nhận được một số lượng lớn lời mời làm việc trong ngày của mình, thậm chí còn khá thờ ơ với những câu hỏi và câu trả lời tiêu chuẩn như thế này. Và bây giờ, với tư cách là người quản lý tuyển dụng, tôi có thể hứa với bạn rằng tôi không muốn đọc câu trả lời ... Mặc dù vậy, tôi hiểu rằng một số người quản lý sẽ có những nhu cầu khác nhau.
Svidgen

1
@Ewan Tôi cũng nên làm rõ một điều nữa, nếu giọng điệu của tôi không được nhận như dự định: Bạn nên xem lại câu trả lời của mình để thực sự khẳng định rằng vấn đề trong cuốn sách được liên kết là "câu hỏi dự định". Và sau đó trả lời câu hỏi! ... Bạn chắc chắn sẽ có +1 của tôi, và nhiều người khác, và sự hài lòng khi giúp OP làm điều đó.
Svidgen
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.