一面
- 自我介紹
- 業務和項目
- rabbit mq 三種模式
- rabbit mq 持久化策略
- 分頁查詢優化
- 索引
- 線程池及場景
- nio
- 算法題:
【二分查找數組中的元素】
給出一個有序數字數組,再給出一個數字,使用二分查找法,找到這個數字在數組中最後一次出現的位置(從 0 開始計數),
如果找不到,則返回 -1。
例如,給出數組 [1,3,3,4,4,4,5,6,7],給出數字 4,返回 5。
輸入描述
第一行是一個數組,英文逗號分割,如 1,3,3,4,4,4,5,6,7
第二行是要查找的數字
輸出描述
輸出爲要查找的數字在數組中的位置
示例1
輸入
1,3,3,4,4,4,5,6,7
4
輸出
5
說明
輸出元素在數組中最後出現的位置
示例2
輸入
1,2,3,4,5
6
輸出
-1
說明
如果元素不在數組中,返回 -1
二面
- 自我介紹
- 業務和項目
- 業務鏈路和架構和相關優化
- 重構 及 帶來的意義
- 數據雙寫
- 更新時老表成功,新表更新時還沒有這個數據怎麼辦
- 灰度開關 及 後續規劃
- mysql 和 redis數據不一致怎麼辦
mysql更新成功,redis set失敗怎麼辦
- 怎麼保證數據一致性
- 分庫分表
- 分表 sharding key
- 分片多會造成什麼問題
- 分表裏有一個表存很多熱點數據,怎麼改善
除了改善hash算法,還能怎麼辦
- 服務治理
- 監控系統
- 災備多活
- 多機房數據怎麼同步
- 丟消息和重複發消息怎麼辦
- 算法題:
給定一個只包含三種字符的字符串:( ,) 和 *,寫一個函數來檢驗這個字符串是否爲有效字符串。有效字符串具有如下規則:
任何左括號 ( 必須有相應的右括號 )。
任何右括號 ) 必須有相應的左括號 ( 。
左括號 ( 必須在對應的右括號之前 )。
* 可以被視爲單個右括號 ) ,或單個左括號 ( ,或一個空字符串。
一個空字符串也被視爲有效字符串。
示例 1:
輸入: “()”
輸出: True
示例 2:
輸入: “(*)”
輸出: True
示例 3:
輸入: “(*))”
輸出: True