從初始C語言到演演算法必須經歷的過程,沒有捷徑?

2021-11-29 14:00:01

前言

  很多人看到我的部落格,太多專欄不知道從何學起,為了廣大人民群眾的根本利益,我決定寫一個閱讀指引,按照這個指引進行學習,多加練習,假以時日,勢必能夠……算了,還是看你自己能學多少以及能夠堅持到哪裡了。加油吧,少年!堅持就是勝利!邁出第一步就成功了一半!

專欄定位適宜人群
「 光天化日學C語言 」「 入門 」沒有任何語言基礎
「 LeetCode零基礎指南 」「 初級 」零基礎快速上手力扣
「 C語言入門100例 」「 中級 」零基礎持續C語言練習教學
「 演演算法零基礎100講 」「 高階 」零基礎持續演演算法練習教學
「 畫解資料結構 」「 高階 」「 推薦 」 資料結構動圖教學
「 演演算法進階50講 」「 資深 」進階持續演演算法練習教學
「 LeetCode演演算法題集彙總 」「 資深 」全面的力扣演演算法題練習集錦
「 夜深人靜寫演演算法 」「 資級 」競賽高階演演算法集錦

一、語言基礎

1、「 光天化日學C語言 」

  學習演演算法,還是需要有一門語言作為基礎的,推薦用 C語言,並且可以看下這個專欄,瞭解一些簡單的 C語言語法。雖然沒有更新完,但是隻要看前五節內容,就能夠對 C語言 的語法大體有一個瞭解。

🌞《光天化日學C語言》🌞

(01)- 初始 C 語言
(02)- 配本地環境
(03)- 變數初體驗
(04)- 格式化輸出
(05)- 格式化輸入

  讀完這五節,基本能夠了解 C語言 的輸入輸出 了。對於初學者來說,可以先看這麼幾節,然後我們繼續看下面的內容,等遇到相關知識點時再回來翻開即可。


二、刷題必讀

  光看不練肯定是不行的,所以主要還是要刷題,我這裡推薦的是 LeetCode,主要原因是因為現在一些大廠面試的時候基本都是在 牛客 或者 LeetCode 上找的題,而 LeetCode 上的題更加系統,如果這裡的題能夠掌握大部分,那面試刷題這快肯定是不慌了。當然,對於競賽選手,這個難度肯定是遠遠不夠的。不過,這是後話了,我們先來看簡單的。

1、「 LeetCode零基礎指南 」

  一開始刷題的時候,一定要刷水題。刷水題是為了讓你養成刷題的習慣,一開始就刷難題很容易被勸退。剛開是的時候,建立信心是很重要的事情。
  建立信心的過程是需要逐漸培養的,通過不斷刷題,把題目數量提上來,才能不斷的建立信心。所以,很多時候,如果遇到題目告訴你一定要用某個方法來做,但是你又想不出來的時候,你就想辦法先把它過掉再說。
  例如,下面這道題:

  實現一個函數multiply,不使用 * 運運算元, 實現兩個正整數的相乘。可以使用加號、減號、位移,但要吝嗇一些。

int multiply(int A, int B){   // (1)
    return A * B;             // (2)
}
  • ( 1 ) (1) (1) 這裡int是C/C++中的一種型別,代表整數,即 Integer,傳入引數是兩個整數;
  • ( 2 ) (2) (2) 題目要求返回兩個整數的乘積,並且要求不能用*,那如果我用了會怎麼樣?答案是並不會怎麼樣,因為平臺不會去對它做語法分析,只是呼叫了你的函數,提供一些輸入資料,如果輸出資料和它給定的相同,就算通過。作為你接觸演演算法的第一道題,其實這些條件都無所謂的,能過就行,他只檢測輸入輸出,不檢測你實際程式碼。

  對於新人來說,把問題過掉比問題本身更重要,題數的增加,是信心的增加,信心比什麼都重要,有了信心,你才能繼續往下走,只要你能往下推進,你就能繼續學習,繼續學習你遲早會學到相應的演演算法。好了,過了這題以後,把這道題放入你的重刷列表,等你對演演算法有一定理解以後再來用題目要求的方法來過了它。

  這個專欄主要講解了一些 LeetCode 刷題時的一些難點和要點,主要分為以下幾個章節,並且會持續補充一些方法論的文章。文章有試讀,可以簡單先看一看試讀文章。

🍠《LeetCode零基礎指南》🍠

(第一講)導讀
(第二講)函數
(第三講)迴圈
(第四講)陣列
(第五講)指標
(第六講)排序
(第七講)貪心
(第八講)矩陣
(第九講)二級指標
(第十講)簡單遞迴

2、「 九日集訓每日打卡 」

  「 九日集訓 」是博主推出的一個能夠白嫖付費專欄「 LeetCode零基礎指南 」的活動。通過 「 專欄中的聯絡方式 」 或者 「 本文末尾的聯絡方式 」 聯絡博主,進行報名即可參加。九日一個迴圈,第二期計劃 「 2021.12.02 」 開啟。

  玩法很簡單,每天會開啟一篇試讀文章,要求有三點:
  1)閱讀完文章後,課後習題 「 全部刷完 」(都能在文中找到解法,需要自己敲一遍程式碼);
  2)寫 「 學習報告 」 並行布社群 九日集訓(每日打卡) 頻道
  3)在 「 打卡帖 」 提交 「 學習報告 」 連結;

  完成以上三點後方可晉級到下一天,所有堅持到 9天 的同學,會成為 「 英雄演演算法聯盟合夥人 」 群成員,只限500個名額,優勝劣汰,和精英在一起,無論是溝通,學習,都能有更好的發展,你接觸到的人脈也都是不一樣的,等找工作的時候,我也會為大家打通 hr 和獵頭,讓你前程無憂~
  詳細規則參見:九日集訓規則詳解
  目前第一輪「 九日集訓 」已經進行到第七天,即將開啟第二輪。


三、語言入門

1、「 C語言入門100例 」

  這個專欄的目的是加深對 C語言 的理解,通過看題做題,不斷加深每個語法以及簡單演演算法的作用。

🧡《C語言入門100例》🧡

  該專欄每個演演算法都會提供例題,並且要求玩家實現一個函數,主函數需要自己寫,範例如下:

#include <stdio.h>            // (1) 標準輸入輸出庫
int add(int a, int b) {
    return a + b;             // (2) 這就是一個最簡單的演演算法:加法演演算法
}
int main() {
    int a = add(1, 3);        // (3) 演演算法輸入兩個引數,輸出一個引數;
    printf("%d\n", a);        // (4) 將演演算法結果輸出到螢幕上來驗證結果
    return 0;
}

  試讀文章如下,可以看下是否滿足自身需要:

【第01題】A + B | 基礎輸入輸出,開啟學習C語言打卡的序章
【第02題】給定 n,求 1 + 2 + 3 + .... n-1 + n 的和 | 四種解法

2、「 C語言每日打卡 」

  「 C語言每日打卡 」是博主推出的一個能夠白嫖付費專欄「 C語言入門100例 」的活動。通過 「 專欄中的聯絡方式 」 或者 「 本文末尾的聯絡方式 」 聯絡博主,即可參加。

  玩法很簡單,每天會開啟一篇試讀文章,要求有三點:
  1)閱讀完文章後,課後習題 「 挑一道刷 」
  2)寫 「 學習報告 」 並行布社群 C語言(每日打卡) 頻道
  3)在 「 打卡帖 」 提交 「 學習報告 」 連結;


四、演演算法入門

1、「 演演算法零基礎100講 」

🌌《演演算法零基礎100講》🌌

  如果你只是想學會寫程式碼,或許 「 演演算法與資料結構 」 並不是那麼重要,但是,想要進一步發展自己的事業,「 演演算法與資料結構 」 是必不可少的。
  現在一些主流的大廠,諸如:位元組、網易、騰訊、阿里、美團、京東、滴滴 等等,在面時都會讓候選人寫一道 「 演演算法題 」 ,如果你敲不出來,可能你的 「 offer 」 年包就打了骨折,或者直接與 「 offer 」 失之交臂,都是有可能的。
  當然,它不能完全代表你的 「 編碼能力 」 ,因為有些演演算法確實是很巧妙,加上緊張的面試氛圍,想不出來其實也是正常的,但是你能確保面試官是這麼想的嗎?我們要做的是 「 十足的準備 」 ,既然決定出來, 「 offer 」 當然是越高越好,畢竟大家都要養家餬口,房價又這麼貴,如果能夠在演演算法這一塊取得先機,也不失為一個 「 捷徑 」
  所以,你問我演演算法和資料結構有什麼用?我可以很明確的說,和你的年薪息息相關。當然,面試中 「演演算法與資料結構」 知識的考察只是面試內容的一部分。其它還有很多面試要考察的內容,當然不是本文主要核心內容,這裡就不做展開了。試讀內容如下:

導讀
(第1講) 冪和對數
(第2講) 數列

  本專欄適宜對演演算法沒有什麼概念,但是對某一門語言有一些簡單基礎的同學,如果語言基礎較為薄弱,建議先選擇一門語言學習一段時間。當然,如果直接開始學演演算法,也不是不可以,只要堅持把該專欄的 100 講 攻克完畢,基本上語言那關也可以過了。

2、「 演演算法零基礎每日打卡 」

  「 演演算法零基礎每日打卡 」是博主推出的一個能夠白嫖付費專欄「 演演算法零基礎100講 」的活動。通過 「 專欄中的聯絡方式 」 或者 「 本文末尾的聯絡方式 」 聯絡博主,即可參加。

  玩法很簡單,每天會開啟一篇試讀文章,要求有三點:
  1)閱讀完文章後,課後習題 「 挑三道刷 」
  2)寫 「 學習報告 」 並行布社群 演演算法零基礎(每日打卡) 頻道
  3)在 「 打卡帖 」 提交 「 學習報告 」 連結;

五、演演算法進階

1、「 畫解資料結構 」

  以動圖的形式,更加生動形象的闡釋每個資料結構的思想和實現。

🌳《畫解資料結構》🌳

  線性表 和 樹 的內容已經大致更新完畢,圖相關的內容目前還未更新。已更新內容如下:

順序表
連結串列
佇列
雙端佇列
雜湊表
二元樹
二元搜尋樹
平衡二元樹

2、「 演演算法進階50講 」

🌌《演演算法進階50講》籌備中🌌

3、「 LeetCode演演算法題集彙總 」

  這一部分主要是給有大塊時間,並且想自學成才的同學準備的,裡面的題集也在不斷完善整理中。

🌌《演演算法入門指引》🌌



在這裡插入圖片描述
在這裡插入圖片描述

4、「 夜深人靜寫演演算法 」

  這個專欄是我五年前寫的,有一定難度,但是對於競賽的同學是個不錯的選擇。

💜《夜深人靜寫演演算法》💜

夜深人靜寫演演算法》總綱

  以下是幾篇優質文章的試讀:
夜深人靜寫演演算法(十九)- 揹包總覽
夜深人靜寫演演算法(二十三)- 最短路
夜深人靜寫演演算法(二十六)- 記憶化搜尋

六、社群活動

1、「 結對程式設計排位賽 」

  當你覺得自己已經有一定能力,可以加入到「 結對程式設計 」的行列中來,和隊友一起組隊刷題,感受團隊的力量。提前學習團隊融入和團隊共同作業,對日後的 專案開發、工作等都是有百利而無一害。
  可提前新增博主,備註「 結對程式設計 」,寒假開啟,瘋狂刷題!

2、「 明年今日 」

  由於【付費專欄】購買後,只有一年的閱讀許可權,很多使用者反饋不知道,為了維護消費者的利益,回饋廣大使用者,作者打算將付費文章製作成 pdf,並且在 【明年今日】(2022.11.11日) 將 一年內過期的文章通過檔案的形式開放出來。
  由於製作過程會比較繁瑣,而且需要各種的查錯糾正,較為燒腦,具體細則如下:

【使用者範圍】今日購買的付費專欄的使用者直接享有對應的專欄精裝版 pdf(在這之前,已經購買過對應付費專欄需要新增作者後提供憑據);
【專欄範圍】《LeetCode零基礎指南》《C語言入門100例》《演演算法零基礎100講》《畫解資料結構》《夜深人靜寫演演算法》

3、「 三年之約 」

  作者在此承諾!只要你不捨,我不棄,你我同心協力,以三年為期,引萬人之勢氣,共築未來美好三年!三年之後,演演算法刷滿 1000 題,你我位元組見,你不來,我不走!

4、「 英雄演演算法聯盟合夥人 」

  「 萬人千題 」社群,打造 「 英雄演演算法聯盟合夥人 」,讓天下沒有難學的演演算法。以下是我未來十年的願景,以求志同道合者,共勉。

帶領 10000 人刷滿一千道演演算法題
內推 1000 人進大廠
帶領 100 人成功打造個人IP
10 人一起財務自由

七、配套贈送福利

語言入門《光天化日學C語言》(範例程式碼)
語言訓練《C語言入門100例》試用版
資料結構《畫解資料結構》原始碼
演演算法入門《演演算法入門》指引
演演算法進階《夜深人靜寫演演算法》演演算法模板

👇🏻 新增 博主 獲取資料驗證碼👇🏻