最近一網友發文稱:字節面試過了,背調也過了,也發了入職郵件,結果又不給發offer了,原因是該網友說自己是研 0 ,也就是大四畢業,即將要讀研。
我覺得不發就不發吧,畢竟還要讀研,也干不多久,到時候還沒轉正就溜了,該網友也說了簡歷上寫的很清除了,估計該網友是想找個實習崗。
研 0 群體雖快要結束本科階段,但尚未正式注冊研究生學籍,這種身份模糊性,可能會導致企業以 “不符合在校生要求” 為由取消 offer。
--------------下面是今天的算法題--------------
來看下今天的算法題,這題是LeetCode的第1550題:存在連續三個奇數的數組,難度是簡單。
給你一個整數數組 arr,請你判斷數組中是否存在連續三個元素都是奇數的情況:如果存在,請返回 true ;否則,返回 false 。
示例1:
輸入:arr = [2,6,4,1] 輸出:false 解釋:不存在連續三個元素都是奇數的情況。
示例2:
輸入:arr = [1,2,34,3,4,5,7,23,12] 輸出:true 解釋:存在連續三個元素都是奇數的情況,即 [5,7,23] 。
1 <= arr.length <= 1000
1 <= arr[i] <= 1000
問題分析
這題是讓判斷數組中是否存在連續的三個數,并且這三個數都是奇數。這題非常簡單,我們只需要枚舉即可。
可以枚舉三個數中的中間數,如果中間的數是偶數,則跳過,這里可以跳兩步,比如數組[1,3,6,7,9,3],枚舉數字 6 的時候,它是偶數,下一步直接枚舉 9 就可以了,不需要枚舉 7 了,因為 7 左邊的是偶數。
如果中間的數是奇數,在枚舉它兩邊的數,如果兩邊的數也都是奇數,則返回true。
JAVA:
public boolean threeConsecutiveOdds(int[] arr) { int n = arr.length; for (int i = 1; i < n - 1; i++) { if ((arr[i] & 1) == 0) { // 如果當前數字是偶數,則跳過。 i++; continue; } // 然后分別判斷前面和后面是否都是奇數。 if ((arr[i - 1] & 1) != 0 && (arr[i + 1] & 1) != 0) returntrue; } returnfalse; }
C++:
public: bool threeConsecutiveOdds(vector
&arr) { int n = arr.size(); for (int i = 1; i < n - 1; i++) { if ((arr[i] & 1) == 0) { // 如果當前數字是偶數,則跳過。 i++; continue; } // 然后分別判斷前面和后面是否都是奇數。 if ((arr[i - 1] & 1) != 0 && (arr[i + 1] & 1) != 0) returntrue; } returnfalse; }
筆者簡介
博哥,真名:王一博,畢業十多年, 作者,專注于 數據結構和算法 的講解,在全球30多個算法網站中累計做題2000多道,在公眾號中寫算法題解900多題,對算法題有自己獨特的解題思路和解題技巧。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.