我經常遇到涉及排序/未排序數組的面試問題,他們要求您查找此數組的某種屬性。例如finding the number that appears odd number of times in an array或find the missing number in an unsorted array of size one million。通常這個問題需要額外的約束,比如O(n)運行時複雜度,或者O(1)空間複雜度。 這兩個問題都可以通過按位操作相當有效地解決。當然,這些並不是全部,有很多這樣的問題。在實際編程中,按位操作是否通用且有用?
對我來說,按位編程似乎更像是基於黑客或直覺,因爲它工作在二進制而非小數。作爲一名沒有太多現實生活編程經驗的大學生,我很好奇這種類型的問題在實際工作中是否真正受到歡迎,還是他們只是面試官用來挑選最聰明的候選人的腦筋急轉彎。 如果它們確實有用,它們實際上適用於哪種場景?
指定二進制選項(例如打開/關閉選項)是首先想到的。 – nhahtdh 2013-04-09 01:25:31
@nhahtdh具體來說,XOR是迄今爲止我見過的最受歡迎的二元運算符,我不明白他們爲什麼總是在解決問題時很方便 – turtlesoup 2013-04-09 01:29:43
如果您正在研究一個算法的實現或實現一些庫,那麼你會看到位運算符相當多。如果你的工作水平超出了這個範圍(重用圖書館),那就不那麼重要了。 – nhahtdh 2013-04-09 01:31:14