主頁 > 移動端開發 > 最短時間搞定演算法:位元組跳動Android崗演算法題考前突擊寶典

最短時間搞定演算法:位元組跳動Android崗演算法題考前突擊寶典

2021-09-01 14:51:06 移動端開發

前言

一個人,一支筆,一個晚上,一個奇跡,這是學生黨的常規操作,

大學里也同樣有很多奇跡的創造者:每次一到期末考試的前幾個晚上,各個變身“最強大腦”,上知天文,下曉地理,還精通人文……再不濟就是各種縮印,肉眼去辨蠅頭小字,個個大顯神通,不可謂不牛掰,

然后,問題來了,面試該怎么辦?如何在最短的時間內搞定資料結構和演算法,應付面試?

奇跡

真的有演算法速成的秘訣嗎?最快能有多快?

在這里,我分享一下我們交流圈的一個大佬的故事吧,


位元組跳動大家都知道,可以說是靠演算法打出的江山,面試的時候也非常看重應聘者的演算法功底(我甚至聽說還有演算法一票否決的),能進位元組,還能來做經驗分享的,演算法能力肯定是不會差的,

既然大家都說了是以"應付面試"為主,那我們就直奔主題吧,

其實這個大佬演算法這一塊并不擅長,完全是靠著自己的努力硬刷上去的,前前后后花了一個月多月,

下面大致說一下大佬所經歷過的互聯網招聘中對于演算法這塊的考察重點(文末送演算法刷題資料),

其實不管是社招還是校招,考察最多的演算法題型基本都是鏈表、陣列、字串、動態規劃、貪心演算法、深度優先搜索、廣度優先搜索這些,

經歷過幾次面試的朋友不難感覺出來,近幾年以來演算法考察日益漸難,以前刷題100道就ok了,現在直接200+起步了(害,就硬卷唄),

所以,在態度上,演算法這一塊,大家要引起重視呀,不可懈怠,

不過,既然前文已經說了是教大家刷題,那么下面我們就只講重點,下面我會列舉一些經常作為重點考察的演算法題目,

演算法高頻考點

對于貪心演算法,可能會重點考察以下題目:

  • 通配符求值
  • 跳躍游戲
  • 跳躍游戲II
  • 分發糖果
  • 判斷子序列
  • 移掉K位數字
  • 分割陣列為連續子序列

對于DFS (深度優先搜索遍歷) ,可能會重點考察以下題目:

  • 重建二叉樹
  • 島嶼數量
  • 二叉樹的最大深度
  • 平衡二叉樹
  • 二叉樹根節點到葉子節點和為指定值的路徑
  • 判斷-棵二叉樹是否為搜索二-叉樹和完全_二叉樹
  • 二叉樹根節點到葉子節點的所有路徑和
  • 判斷二叉樹是否對稱
  • ……(內容比較多,重點都整理在后文的《演算法刷題寶典》中了

比如對于鏈表,可能會重點考察以下題目:

  • 反轉鏈表
  • 鏈表中環的入口節點
  • 判斷鏈表中是否有環
  • 鏈表中倒數第k個結點
  • 鏈表中的節點每k個- -組翻轉
  • 合并有序鏈表
  • 洗掉鏈表的倒數第n個節點
  • ……(后續整理在《演算法刷題寶典》中了)

對于陣列,可能會重點考察以下題目:

  • 螺旋矩陣
  • 重建二叉樹
  • 陣列中出現次數超過一半的數字
  • 矩陣的最小路徑和
  • 缺失數字
  • 順時針旋轉矩陣
  • 加起來和為目標值的組合
  • 集合的所有子集
  • 陣列中的逆序對
  • 旋轉陣列
  • 矩陣查找
  • ……(全收錄)

對于字串,可能會重點考察以下題目:

  • 最長無重復子串.
  • 括號序列
  • 最長回文子串
  • 大數加法
  • 反轉字串
  • 最小編輯代價
  • 將字串轉化為整數
  • 驗證IP地址
  • 最長公共前綴
  • 字串變形
  • 通配符匹配
  • kmp演算法
  • 數字字串轉化成IP地址
  • 大數乘法
  • 第一個只出現一次的字符

對于動態規劃,可能會重點考察以下題目:
……
(后面看內容好像還挺多,專門整理成了一份PDF,大家感興趣的可以掃碼免費獲取)

演算法學習方法+《演算法刷題寶典》

在刷題之前我建議你看一些書

《漫畫演算法之旅》

如果你之前沒有任何演算法基礎,這邊書很適合你,可以補充資料結構和演算法的基礎知識,像什么是時間復雜度空間復雜度、查找、排序等,
如果你有了一定基礎了,建議你直接跳到最后面的演算法實戰部分,

《劍指 offer》

非常經典的一本書,學演算法的人必刷,但是要注意了,這邊書里面的題目是用 C++寫的,如果你是 Java 開發人員可能會有點影響,但是要記住學習演算法最關鍵的還是解題思路和方法,用什么語言實作是其次的,如果你時間比較多我是建議你用 Java 語言再實作一遍,

《labuladong的演算法小抄》

非常推薦!這是一本很新的書,寫書前作者在 Github 開源了一個專案,主要講解 LeetCode 解題套路,Start 總數排名前40,在書的開頭講解了學習演算法的基本思維和套路,建議看這邊書的同時再配合 leetcode 刷題,療效非常棒!

《演算法導論》

要是不推薦這本書是不是顯得我有點 low 了,這是一本科班出身的同學必看必學的經典大部頭,國外大佬寫的,國內翻譯的經典之作,雖然是經典但是不建議剛入門演算法的同學看,因為看了這本書你可能要放棄演算法了,比較難看懂,建議有了一定基礎再入手這邊書,

如果你覺得看書比較枯燥,可以推薦你看一些極客時間的專欄,不過是收費,但是質量非常高,
《資料結構與演算法之美》

這個專欄是文字+語音,作者是王爭,前 Google 工程師,他采用最適合工程師的學習方式,不拘泥于某一特定編程語言,從實際開發場景出發,由淺入深教你學習資料結構與演算法的方法,幫你搞懂基本概念和核心理論,深入理解演算法精髓,幫你提升使用資料結構和演算法思維解決問題的能力,

《演算法面試通關40講》

這個專欄是視頻,作者是覃超,前Facebook工程師,作者會用白板帶你一步一步解題,層層深入一環扣一環,每一題還會用多種解題方法,我基本看完了,識訓頗多,

leetcode、書和極客專欄可以并行,學練結合,不要光看不練,

演算法刷題寶典

有需要的朋友可以直接掃【下方的二維碼】找我免費獲取全套資料,
↓↓↓↓↓

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/296635.html

標籤:其他

上一篇:金九銀十Offer收割機:Android 面試核心知識點精講,不打沒準備的仗!

下一篇:阿里面試,三面都過了,卻被無理由掛了,快來一起吃瓜

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【從零開始擼一個App】Dagger2

    Dagger2是一個IOC框架,一般用于Android平臺,第一次接觸的朋友,一定會被搞得暈頭轉向。它延續了Java平臺Spring框架代碼碎片化,注解滿天飛的傳統。嘗試將各處代碼片段串聯起來,理清思緒,真不是件容易的事。更不用說還有各版本細微的差別。 與Spring不同的是,Spring是通過反射 ......

    uj5u.com 2020-09-10 06:57:59 more
  • Flutter Weekly Issue 66

    新聞 Flutter 季度調研結果分享 教程 Flutter+FaaS一體化任務編排的思考與設計 詳解Dart中如何通過注解生成代碼 GitHub 用對了嗎?Flutter 團隊分享如何管理大型開源專案 插件 flutter-bubble-tab-indicator A Flutter librar ......

    uj5u.com 2020-09-10 06:58:52 more
  • Proguard 常用規則

    介紹 Proguard 入口,如何查看輸出,如何使用 keep 設定入口以及使用實體,如何配置壓縮,混淆,校驗等規則。

    ......

    uj5u.com 2020-09-10 06:59:00 more
  • Android 開發技術周報 Issue#292

    新聞 Android即將獲得類AirDrop功能:可向附近設備快速分享檔案 谷歌為安卓檔案管理應用引入可安全隱藏資料的Safe Folder功能 Android TV新主界面將顯示電影、電視節目和應用推薦內容 泄露的Android檔案暗示了傳說中的谷歌Pixel 5a與折疊屏新機 谷歌發布Andro ......

    uj5u.com 2020-09-10 07:00:37 more
  • AutoFitTextureView Error inflating class

    報錯: Binary XML file line #0: Binary XML file line #0: Error inflating class xxx.AutoFitTextureView 解決: <com.example.testy2.AutoFitTextureView android: ......

    uj5u.com 2020-09-10 07:00:41 more
  • 根據Uri,Cursor沒有獲取到對應的屬性

    Android: 背景:呼叫攝像頭,拍攝視頻,指定保存的地址,但是回傳的Cursor檔案,只有名稱和大小的屬性,沒有其他諸如時長,連ID屬性都沒有 使用 cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DURATIO ......

    uj5u.com 2020-09-10 07:00:44 more
  • Android連載29-持久化技術

    一、持久化技術 我們平時所使用的APP產生的資料,在記憶體中都是瞬時的,會隨著斷電、關機等丟失資料,因此android系統采用了持久化技術,用于存盤這些“瞬時”資料 持久化技術包括:檔案存盤、SharedPreference存盤以及資料庫存盤,還有更復雜的SD卡記憶體儲。 二、檔案存盤 最基本存盤方式, ......

    uj5u.com 2020-09-10 07:00:47 more
  • Android Camera2Video整合到自己專案里

    背景: Android專案里呼叫攝像頭拍攝視頻,原本使用的 MediaStore.ACTION_VIDEO_CAPTURE, 后來因專案需要,改成了camera2 1.Camera2Video 官方demo有點問題,下載后,不能直接整合到專案 問題1.多次拍攝視頻崩潰 問題2.雙擊record按鈕, ......

    uj5u.com 2020-09-10 07:00:50 more
  • Android 開發技術周報 Issue#293

    新聞 谷歌為Android TV開發者提供多種新功能 Android 11將自動填表功能整合到鍵盤輸入建議中 谷歌宣布Android Auto即將支持更多的導航和數字停車應用 谷歌Pixel 5只有XL版本 搭載驍龍765G且將比Pixel 4更便宜 [圖]Wear OS將迎來重磅更新:應用啟動時間 ......

    uj5u.com 2020-09-10 07:01:38 more
  • 海豚星空掃碼投屏 Android 接收端 SDK 集成 六步驟

    掃碼投屏,開放網路,獨占設備,不需要額外下載軟體,微信掃碼,發現設備。支持標準DLNA協議,支持倍速播放。視頻,音頻,圖片投屏。好點意思。還支持自定義基于 DLNA 擴展的操作動作。好像要收費,沒體驗。 這里簡單記錄一下集成程序。 一 跟目錄的build.gradle添加私有mevan倉庫 mave ......

    uj5u.com 2020-09-10 07:01:43 more
最新发布
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:40:31 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:40:11 more
  • 歡迎頁輪播影片

    如圖,引導開始,球從上落下,同時淡入文字,然后文字開始輪播,最后一頁時停止,點擊進入首頁。 在來看看效果圖。 重力球先不講,主要歡迎輪播簡單實作 首先新建一個類 TextTranslationXGuideView,用于影片展示 文本是類似的,最后會有個圖片箭頭影片,布局很簡單,就是一個 TextVi ......

    uj5u.com 2023-04-20 08:39:36 more
  • 【FAQ】關于華為推送服務因營銷訊息頻次管控導致服務通訊類訊息

    一. 問題描述 使用華為推送服務下發IM訊息時,下發訊息請求成功且code碼為80000000,但是手機總是收不到訊息; 在華為推送自助分析(Beta)平臺查看發現,訊息發送觸發了頻控。 二. 問題原因及背景 2023年1月05日起,華為推送服務對咨詢營銷類訊息做了單個設備每日推送數量上限管理,具體 ......

    uj5u.com 2023-04-20 08:39:13 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:16:23 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:16:15 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:15:46 more
  • iOS從UI記憶體地址到讀取成員變數(oc/swift)

    開發除錯時,我們發現bug時常首先是從UI顯示發現例外,下一步才會去定位UI相關連的資料的。XCode有給我們提供一系列debug工具,但是很多人可能還沒有形成一套穩定的除錯流程,因此本文嘗試解決這個問題,順便提出一個暴論:UI顯示例外問題只需要兩個步驟就能完成定位作業的80%: 定位例外 UI 組 ......

    uj5u.com 2023-04-19 09:14:53 more
  • FIDE重磅更新!性能飛躍!體驗有禮!

    FIDE 開發者工具重構升級啦!實作500%性能提升,誠邀體驗! 一直以來不少開發者朋友在社區反饋,在使用 FIDE 工具的程序中,時常會遇到諸如加載不及時、代碼預覽/渲染性能不如意的情況,十分影響開發體驗。 作為技術團隊,我們深知一件趁手的開發工具對開發者的重要性,因此,在2023年開年,FinC ......

    uj5u.com 2023-04-19 09:14:08 more
  • 游戲內嵌社區服務開放,助力開發者提升玩家互動與留存

    華為 HMS Core 游戲內嵌社區服務提供快速訪問華為游戲中心論壇能力,支持玩家直接在游戲內瀏覽帖子和交流互動,助力開發者擴展內容生產和觸達的場景。 一、為什么要游戲內嵌社區? 二、游戲內嵌社區的典型使用場景 1、游戲內打開論壇 您可以在游戲內繪制論壇入口,為玩家提供沉浸式發帖、瀏覽、點贊、回帖、 ......

    uj5u.com 2023-04-19 09:08:34 more