嵌入式人別再瞎折騰了!這8個開源項目,解決按鍵/隊列/物聯網所有痛點,小白也能抄作業

嵌入式人別再瞎折騰了!這8個開源項目,解決按鍵/隊列/物聯網所有痛點,小白也能抄作業

你是不是也有過這樣的崩潰時刻:想做個按鍵控制,結果長按、連擊、組合鍵的邏輯寫了200行if-else,最后還時不時串鍵;想緩存串口數據,自己寫的隊列要么溢出要么丟包,調試到半夜懷疑人生;想搞個智能家居,連網、控設備、做界面繞得頭皮發麻……

其實嵌入式開發早有“現成答案”!GitHub上藏著一堆超實用的開源項目,從單個功能模塊到完整硬件方案,全是前輩們踩坑后的精華。今天就把這些“省時神器”扒出來,不用你再從零造輪子,看完就能直接用!

一、實用軟件模塊篇:解決單個功能的“小而美”

先從最基礎的功能模塊說起——這些項目就像廚房的“預制菜”,不用你從頭切菜調味,拆開就能懟進代碼里,專治各種“重復造輪子”。

1. MultiButton:把按鍵邏輯“打包”的神器

痛點:處理按鍵時,光是“單擊、長按、連擊、組合鍵”就得寫一堆狀態判斷,稍微復雜點就容易出bug,比如長按沒觸發,反而誤判成兩次單擊。
項目地址:https://github.com/0x1abin/MultiButton
它能幫你做什么
不管是單個按鍵的“按下/松開”,還是長按后的“持續觸發”,甚至是多個按鍵同時按的“組合鍵”,這庫都幫你封裝好了。你不用管底層怎么掃描、怎么計時,只要告訴它“按這個鍵要觸發什么動作”就行。
比如想實現“按一下開燈,長按3秒調光”,以前得自己記按下時間、判斷時長,現在直接綁定兩個事件,幾行代碼搞定。

簡單用例(一看就懂)

#include "multi_button.h"
// 先定義兩個按鍵(比如一個控制燈,一個控制風扇)
struct Button light_btn, fan_btn;// 按鍵觸發時要做的事(回調函數)
void light_btn_callback(void *btn) {struct Button *handle = (struct Button *)btn;// 看當前是哪種按鍵事件switch(handle->event) {case PRESS_DOWN:  // 按下printf("燈的按鍵按下去了\n");break;case LONG_PRESS_START:  // 長按開始(比如3秒)printf("長按開始,燈開始調光\n");break;}
}// 初始化按鍵
void setup() {// 綁定按鍵:light_btn是哪個按鍵,read_light_btn_GPIO是讀GPIO的函數button_init(&light_btn, read_light_btn_GPIO, 0);// 給按鍵綁定事件:按下時觸發light_btn_callbackbutton_attach(&light_btn, PRESS_DOWN, light_btn_callback);// 啟動按鍵監測button_start(&light_btn);
}// 主循環里每隔5ms掃一次(不用改)
void main_loop() {button_ticks();
}

適用場景:遙控器、智能開關、帶按鍵的傳感器,只要涉及按鍵操作,它都能扛。

2. QueueForMcu:單片機的“快遞柜”,數據再也不丟了

痛點:中斷里接收到數據,主循環還沒處理完,新數據又來了——要么丟數據,要么程序崩;多個傳感器同時發數據,順序全亂,根本沒法處理。
項目地址:https://github.com/xiaoxinpro/QueueForMcu
它能幫你做什么
這東西就是單片機里的“快遞柜”:數據來了先存進“柜子”里(隊列),主循環什么時候有空,再按順序一個個取出來處理。哪怕中斷里數據來得再快,只要“柜子”沒滿,就不會丟;而且支持中斷和主循環同時操作,不用擔心“搶數據”的問題。

簡單用例(比如處理串口數據)

#include "queue.h"
// 定義一個“快遞柜”:32個位置,存uint8_t類型的數據
#define QUEUE_SIZE 32
uint8_t queue_buffer[QUEUE_SIZE];  // 柜子的“格子”
Queue_t uart_queue;  // 隊列本身// 初始化隊列(相當于把快遞柜搭好)
void setup() {Queue_Init(&uart_queue, queue_buffer, QUEUE_SIZE);
}// 串口接收到數據的中斷函數(數據來了先存柜子)
void uart_rx_handler(uint8_t data) {// 先看柜子滿沒滿,沒滿就存進去if (!Queue_IsFull(&uart_queue)) {Queue_Put(&uart_queue, data);}
}// 主循環里慢慢處理數據
void main_loop() {uint8_t data;// 只要柜子里有數據,就一個個取出來處理while (!Queue_IsEmpty(&uart_queue)) {if (Queue_Get(&uart_queue, &data)) {process_data(data);  // 你的數據處理函數}}
}

適用場景:串口數據緩存、按鍵事件排隊、多個傳感器數據排序,總之只要涉及“數據暫時存起來,后面再處理”,它就是剛需。

3. StateMachine:給設備裝“導航”,狀態再也不混亂

痛點:做個智能門鎖,要處理“鎖定、解鎖中、已解鎖、報警”這幾個狀態,結果狀態之間跳來跳去,比如“已解鎖”時按錯密碼,本該進報警,結果還在解鎖狀態——說白了就是沒管好“狀態轉換”。
項目地址:https://github.com/kiishor/UML-State-Machine-in-C
它能幫你做什么
這東西就是設備的“導航系統”,按照UML標準幫你定義“哪些狀態能轉去哪些狀態”,比如“鎖定狀態”只能接收“密碼正確(轉解鎖中)”或“密碼錯誤(轉報警)”,其他狀態觸發不了,從根源上避免混亂。而且支持嵌套狀態(比如“解鎖中”還能分“驗證密碼”“電機轉動”),復雜邏輯也能理清。

簡單用例(智能門鎖)

// 先定義門鎖的所有狀態
typedef enum {STATE_LOCKED,    // 鎖定STATE_UNLOCKING, // 解鎖中STATE_UNLOCKED,  // 已解鎖STATE_ALARM      // 報警
} door_state_t;// 定義觸發狀態變化的事件
typedef enum {EVENT_PASSWORD_CORRECT,  // 密碼正確EVENT_PASSWORD_WRONG,    // 密碼錯誤EVENT_TIMEOUT            // 超時(比如解鎖后沒關門)
} door_event_t;// 定義“狀態轉換規則”:相當于導航地圖
const state_transition_t door_transitions[] = {{STATE_LOCKED, EVENT_PASSWORD_CORRECT, STATE_UNLOCKING},  // 鎖定→密碼對→解鎖中{STATE_LOCKED, EVENT_PASSWORD_WRONG, STATE_ALARM},        // 鎖定→密碼錯→報警{STATE_UNLOCKING, EVENT_TIMEOUT, STATE_UNLOCKED},         // 解鎖中→超時→已解鎖// 更多規則...
};

適用場景:智能門鎖、洗衣機控制、工業設備流程(比如注塑機的“加熱→注塑→冷卻”),只要設備有多個狀態,用它就能避免“狀態亂跳”。

二、完整項目篇:拿過去就能搭硬件的“成品方案”

如果說模塊是“零件”,那這部分就是“半成品”——從硬件到軟件都給你搭好了,你改改參數、換個傳感器,就能做成自己的項目。

1. TinyGameEngine:在STM32上玩“復古游戲”,小白也能當游戲開發者

痛點:想在單片機上做個貪吃蛇,結果要自己寫像素繪制、按鍵響應、碰撞檢測,光是畫個“蛇頭”就得調半天,最后還卡得不行。
項目地址:https://github.com/juj/fbcp-ili9341
它能幫你做什么
這是個專門給STM32用的“游戲引擎”,相當于把“畫畫、音效、按鍵、碰撞”這些游戲必備功能都做好了。你不用管“怎么在LCD上畫個方塊”“怎么判斷蛇撞到墻”,只要寫“蛇怎么動、食物在哪出現”的邏輯就行,甚至還支持存檔(用EEPROM存游戲進度)。

它能做哪些游戲

  • 貪吃蛇:經典中的經典,引擎幫你處理蛇身跟隨、食物刷新、碰撞死亡;
  • 俄羅斯方塊:方塊下落、旋轉、消除的邏輯都封裝好了,你只管調速度;
  • 打磚塊:反彈球的物理碰撞、磚塊消除效果,直接用現成的接口。

適合人群:想練手STM32、又想做個“能玩的項目”的新手,做完能當擺件,成就感拉滿。

2. HomeAutomation:自己搭智能家居,不用再買“米家全家桶”

痛點:想做智能家居,買現成的設備又貴又不靈活,自己做又不知道怎么連傳感器、怎么控燈、怎么搞手機界面——總之就是“無從下手”。
項目地址:https://github.com/home-assistant/core
它能幫你做什么
這是個完整的智能家居系統方案,相當于給你一套“搭建手冊”:用ESP32當“大腦”(中央控制器),連接溫濕度、光照、煙霧傳感器(眼睛),控制繼電器(燈/插座)、舵機(門鎖)、LED(氛圍燈)(手腳),還支持WiFi、藍牙、Zigbee三種通信方式,手機能通過Web界面實時看數據、控設備,甚至能存傳感器數據(比如記錄一周的溫濕度變化)。

核心功能模塊

  • 設備抽象層:不管是燈還是插座,都用統一的“初始化、讀狀態、控制”接口,不用重復寫代碼;
  • 場景自動化:比如“光照低于200lux時自動開燈”“溫濕度高于28℃時自動開風扇”,自己設規則就行。

適合人群:想折騰智能家居、又想“自定義功能”的玩家,比如你想做個“煙霧報警時自動開窗”,現成設備做不到,但這個項目能改。

3. CanBus-Triple:CAN總線調試神器,汽車/工業設備都能用

痛點:做汽車電子或工業控制,要調試CAN總線(比如讀汽車OBD數據、調試工業CANopen設備),買專業調試器要幾千塊,性價比太低;自己寫代碼讀CAN幀,又看不到實時數據,沒法分析。
項目地址:https://github.com/CANBus-Triple/CANBus-Triple
它能幫你做什么
這是個開源的CAN總線分析儀,相當于“幾百塊實現幾千塊設備的功能”:能實時捕獲CAN幀(看總線上發了什么數據)、自定義發送CAN幀(模擬設備發指令)、解析常見協議(比如汽車的OBD-II、工業的CANopen),還能通過WiFi遠程控制(不用插電腦,手機也能看數據),甚至能過濾特定ID的數據(只看你關心的設備)。

應用場景

  • 汽車診斷:讀汽車的轉速、水溫、故障碼(OBD-II協議);
  • 工業調試:調試CANopen設備(比如電機、傳感器),看數據有沒有傳對;
  • 逆向工程:分析未知的CAN協議(比如某設備的控制指令)。

適合人群:做汽車電子、工業控制的開發者,能省不少調試成本。

三、物聯網項目篇:讓設備“連上網”的必備工具

物聯網項目的核心是“連網+傳數據”,這部分項目就是幫你解決“怎么連、怎么傳、怎么省電”的問題。

1. ESP32-IoT-Platform:物聯網開發“全家桶”,連網傳數據不用愁

痛點:做物聯網項目,最煩的就是“連網配置”(WiFi怎么連、藍牙怎么配對)、“云端通信”(MQTT怎么發數據、HTTP怎么調接口)、“手機界面”(怎么搞個APP控設備)——這些事兒占了80%的開發時間。
項目地址:https://github.com/espressif/esp-idf
它能幫你做什么
這是樂鑫(ESP32的廠商)官方的物聯網平臺,相當于“把物聯網開發的所有坑都填好了”:支持ESP32/ESP8266兩種硬件,WiFi、藍牙、LoRa三種連網方式,MQTT、HTTP、CoAP三種云端通信協議,甚至還給你現成的Android/iOS APP模板、Web管理界面——你只管讀傳感器數據、控執行器,剩下的“連網、傳數據、做界面”都不用自己寫。

簡單用例(環境監測站)

// 定義要傳的環境數據
typedef struct {float temperature;  // 溫度float humidity;     // 濕度uint16_t pm25;      // PM2.5uint16_t co2;       // CO2uint32_t timestamp; // 時間戳
} env_data_t;// 數據采集任務(每隔1分鐘發一次數據到云端)
void sensor_task(void *pvParameters) {env_data_t data;while(1) {// 讀傳感器數據(你只要實現這部分)data.temperature = read_temperature();data.humidity = read_humidity();data.pm25 = read_pm25();data.co2 = read_co2();data.timestamp = get_timestamp();// 發數據到云端(現成接口,不用自己調MQTT)mqtt_publish("sensor/env", &data, sizeof(data));// 等1分鐘再采集vTaskDelay(pdMS_TO_TICKS(60000));}
}

適合人群:剛接觸物聯網的新手,不用再逐個學“WiFi配置”“MQTT協議”,直接用現成的接口。

2. PowerManagement:讓設備“多活幾天”,低功耗優化神器

痛點:做電池供電的設備(比如無線傳感器、智能門鎖),明明用的是鋰電池,結果幾天就沒電了——不是電池不行,是沒做好功耗優化,設備一直“醒著”耗電。
項目地址:https://github.com/espressif/esp-idf/tree/master/examples/system/deep_sleep
它能幫你做什么
這是ESP32的低功耗管理方案,相當于教你怎么讓設備“該睡就睡,該醒就醒”:支持“深度睡眠”(功耗低到微安級,相當于設備“冬眠”)、“定時喚醒”(比如每隔10分鐘醒一次,讀數據后再睡)、“事件喚醒”(比如有人按按鍵,設備才醒),還能動態調節CPU頻率(負載低時降頻省電)、按需開啟外設(不用的傳感器就關掉)。

簡單用例(低功耗傳感器)

#include "esp_sleep.h"
#include "esp_wifi.h"// 進入低功耗模式(睡sleep_time_ms毫秒后醒)
void enter_power_save_mode(uint32_t sleep_time_ms) {// 先關掉WiFi(聯網最耗電)esp_wifi_stop();// 關掉不用的外設(比如LED、傳感器)disable_unused_peripherals();// 配置喚醒源:定時喚醒(睡夠時間就醒)+ 外部中斷喚醒(比如按按鍵)esp_sleep_enable_timer_wakeup(sleep_time_ms * 1000);  // 定時喚醒esp_sleep_enable_ext1_wakeup(GPIO_SEL_0, ESP_EXT1_WAKEUP_ANY_HIGH);  // 按鍵喚醒// 進入深度睡眠(相當于“冬眠”)esp_deep_sleep_start();
}// 喚醒后處理(看是被什么喚醒的)
void handle_wakeup() {esp_sleep_wakeup_cause_t wakeup_reason = esp_sleep_get_wakeup_cause();switch(wakeup_reason) {case ESP_SLEEP_WAKEUP_TIMER:  // 定時喚醒printf("到點了,讀傳感器數據\n");collect_sensor_data();  // 讀數據break;case ESP_SLEEP_WAKEUP_EXT1:  // 按鍵喚醒printf("有人按按鍵,處理用戶操作\n");handle_user_input();  // 處理按鍵break;}
}

適合人群:做無線、電池供電設備的開發者,比如無線溫濕度傳感器、智能門鎖,用它能讓電池壽命翻幾倍。

四、創意項目篇:好玩又實用的“小發明”模板

不想做枯燥的工業項目?這兩個創意項目能讓你把單片機玩出花,做完還能用在生活里。

1. MusicBox:自己做個音樂盒,能播SD卡里的歌

痛點:想買個音樂盒,要么只能放固定的幾首歌,要么音質差;想自己做,又不知道怎么讀SD卡、怎么解碼MP3、怎么輸出音頻——一堆音頻相關的坑。
項目地址:https://github.com/TheRemote/PicoMusicBox
它能幫你做什么
這是個基于單片機的音樂盒項目,相當于給你一套“音樂播放解決方案”:支持讀SD卡里的MP3/WAV文件(不用自己寫文件系統)、PWM/DAC兩種音頻輸出(音質可選)、OLED顯示歌名/進度(不用自己畫界面)、按鍵控制播放/暫停/切歌/調音量,甚至還能調音調(比如把歌變調,搞點有趣的效果)。

硬件要求
單片機(比如樹莓派Pico、STM32)+ SD卡模塊 + OLED屏 + 音頻模塊(比如MAX98357),成本也就幾十塊,比買現成的音樂盒靈活多了。

玩法
可以做成“生日音樂盒”,存上朋友喜歡的歌;也能做成“床頭音響”,連手機藍牙播歌(稍微改改代碼就行)。

2. SmartClock:不止看時間,還能當“家庭小助手”

痛點:普通時鐘只能看時間,想知道溫濕度得再買個傳感器,想設鬧鐘得用手機——東西越堆越多,桌面亂糟糟。
項目地址:https://github.com/witnessmenow/ESP32-Trinity
它能幫你做什么
這是個多功能智能時鐘,相當于“把時鐘、溫濕度計、天氣預報、鬧鐘、氛圍燈”整合到一起:用ESP32做主控,支持NTP網絡時間同步(不用手動調時間)、OLED/LCD顯示時間/溫濕度/天氣(不用自己爬天氣接口)、自定義音樂鬧鐘(存喜歡的歌當鈴聲)、RGB氛圍燈(能跟著時間/天氣變顏色),還能通過手機APP遠程設置(比如在公司設好家里的鬧鐘)。

核心功能

  • 時間:NTP同步,精確到秒,支持12/24小時制;
  • 環境:顯示溫濕度、光照強度(接個光照傳感器就行);
  • 天氣:連網獲取未來3天天氣預報(支持國內城市);
  • 鬧鐘:支持多個鬧鐘,鈴聲可以是MP3文件;
  • 氛圍燈:RGB燈效,比如晚上自動變暗,早上漸變亮。

適合人群:想做個“實用又好看”的桌面擺件,同時練手ESP32聯網、顯示、傳感器的新手。

五、調試工具篇:讓調試效率翻倍的“輔助神器”

嵌入式開發“三分寫代碼,七分調bug”,好的工具能讓你少走很多彎路,比如下面這個串口波形顯示工具。

SerialPlotter:串口數據“可視化”,再也不用對著數字發呆

痛點:調試傳感器時,串口打印一堆數字(比如溫濕度、ADC值),想知道數據變化趨勢,得自己把數字抄下來畫表格——眼睛都看花了,還容易看錯。
項目地址:https://github.com/devinaconley/arduino-plotter
它能幫你做什么
這是個串口數據可視化工具,相當于“把數字變成波形圖”:你只要按固定格式從串口發數據(比如“時間戳:溫度:濕度:光照”),它就能自動生成多通道波形圖,不同數據用不同顏色區分,還能縮放時間軸、看實時數值、導出數據(比如把一天的溫濕度波形存成文件),甚至支持“觸發捕獲”(比如只有溫度超過30℃時才顯示波形)。

數據格式示例

// 按“時間戳:通道1:通道2:通道3”的格式發數據
void send_plot_data() {static uint32_t timestamp = 0;  // 時間戳(每次加1)// 比如發“時間戳:ADC0電壓:ADC1電壓:溫度”printf("%lu:%.2f:%.2f:%.2f\n",timestamp++,  // 時間戳read_adc(0)*3.3/4095,  // ADC0電壓(12位ADC,參考電壓3.3V)read_adc(1)*3.3/4095,  // ADC1電壓read_temperature()     // 溫度);
}

適合場景:調試傳感器(看數據是否穩定)、PID控制(看輸出是否收斂)、電源電壓監測(看是否有波動),總之只要涉及“連續數據變化”,用它調試效率能翻幾倍。

最后說兩句

其實嵌入式開發不用“死磕”,很多前輩已經把難走的路鋪好了——這些開源項目不僅能幫你省時間,更重要的是能讓你學習“優秀的代碼邏輯”(比如隊列的實現、狀態機的設計)。

如果覺得某個項目有用,不妨去GitHub給作者點個Star(開源精神的鼓勵),遇到問題也能看Issues里的討論,甚至自己提PR貢獻代碼——嵌入式圈子的快樂,不就是“互相抄作業,一起進步”嘛~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/96491.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96491.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96491.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++篇(7)string類的模擬實現

一、string的成員變量string和數據結構中的順序表類似,本質上可以理解成字符順序表,其成員變量仍然是_str,_size和_capacity。但是,C標準庫里面也有一個string,和我們要自己實現的string類沖突了,該如何解決…

【直接套模板】如何用 Web of Science 精準檢索文獻?

在文獻檢索的時候遇到一些問題,單獨使用關鍵詞檢索出來的文章數量太多,如果是多加一些限定詞,又什么都檢索不到:比如我明明知道某篇論文已經發表,但在 Web of Science (WoS) 里卻檢索不到。這其實和檢索式的寫法密切相…

HTTP 協議:從原理到應用的深度剖析

一、什么是HTTP協議?HTTP協議,全稱 Hyper Text Transfer Protocol(超?本傳輸協議)的縮寫,是?于服務器與客戶端瀏覽器之間傳輸超?本數據(?字、圖?、視頻、?頻)的應?層協議。它規定了客戶端…

【算法--鏈表】138.隨機鏈表的復制--通俗講解

算法通俗講解推薦閱讀 【算法–鏈表】83.刪除排序鏈表中的重復元素–通俗講解 【算法–鏈表】刪除排序鏈表中的重復元素 II–通俗講解 【算法–鏈表】86.分割鏈表–通俗講解 【算法】92.翻轉鏈表Ⅱ–通俗講解 【算法–鏈表】109.有序鏈表轉換二叉搜索樹–通俗講解 【算法–鏈表…

為什么現在企業注重數據可視化?一文講清可視化數據圖表怎么做

目錄 一、企業注重數據可視化的原因 1.提升數據理解效率 2.發現數據中的規律和趨勢 3.促進企業內部溝通與協作 4.增強決策的科學性 5.提升企業競爭力 二、可視化數據圖表的基本概念 1.常見的可視化圖表類型 2.可視化圖表的構成要素 3.可視化圖表的設計原則 三、制作…

Cursor 輔助開發:快速搭建 Flask + Vue 全棧 Demo 的實戰記錄

Cursor 輔助開發:快速搭建 Flask Vue 全棧 Demo 的實戰記錄 🌟 Hello,我是摘星! 🌈 在彩虹般絢爛的技術棧中,我是那個永不停歇的色彩收集者。 🦋 每一個優化都是我培育的花朵,每一個…

實戰:用 Python 搭建 MCP 服務 —— 模型上下文協議(Model Context Protocol)應用指南

📌 實戰:用 Python 搭建 MCP 服務 —— 模型上下文協議(Model Context Protocol)應用指南 標簽:#MCP #AI工程化 #Python #LLM上下文管理 #Agent架構🎯 引言:為什么需要 MCP? 在構建大…

宋紅康 JVM 筆記 Day16|垃圾回收相關概念

一、今日視頻區間 P154-P168 二、一句話總結 System.gc()的理解;內存溢出與內存泄漏;Stop The World;垃圾回收的并行與并發;安全點與安全區域;再談引用:強引用;再談引用:軟引用;再談…

OpenCV 高階 圖像金字塔 用法解析及案例實現

目錄 一、什么是圖像金字塔? 二、圖像金字塔的核心作用 三、圖像金字塔的核心操作:上下采樣 3.1 向下采樣( pyrDown ):從高分辨率到低分辨率 1)原理與步驟 2)關鍵注意事項 3)…

【ARMv7】系統復位上電后的程序執行過程

引子:對于ARMv7-M系列SOC來說,上電后程序復位執行的過程相對來說比較簡單,因為絕大部分芯片,都是XIP(eXecute In Place,就地執行)模式執行程序,不需要通過BooROM->PL(preloader)-…

神經網絡的初始化:權重與偏置的數學策略

在深度學習中,神經網絡的初始化是一個看似不起眼,卻極其重要的環節。它就像是一場漫長旅程的起點,起點的選擇是否恰當,往往決定了整個旅程的順利程度。今天,就讓我們一起深入探討神經網絡初始化的數學策略,…

第 16 篇:服務網格的未來 - Ambient Mesh, eBPF 與 Gateway API

系列文章:《Istio 服務網格詳解》 第 16 篇:服務網格的未來 - Ambient Mesh, eBPF 與 Gateway API 本篇焦點: 反思當前主流 Sidecar 模式的挑戰與權衡。 深入了解 Istio 官方的未來演進方向:Ambient Mesh (無邊車模式)。 探討革命性技術 eBPF 將如何從根本上重塑服務網格的…

擺動序列:如何讓數組“上下起伏”地最長?

文章目錄摘要描述題解答案題解代碼分析代碼解析示例測試及結果時間復雜度空間復雜度總結摘要 今天我們要聊的是 LeetCode 第 376 題 —— 擺動序列。 題目的意思其實很有意思:如果一個序列里的相鄰差值能保持正負交替,就叫做“擺動”。比如 [1, 7, 4, 9…

玩轉Docker | 使用Docker部署KissLists任務管理工具

玩轉Docker | 使用Docker部署KissLists任務管理工具 前言 一、KissLists介紹 KissLists簡介 KissLists核心特點 KissLists注意事項 二、系統要求 環境要求 環境檢查 Docker版本檢查 檢查操作系統版本 三、部署KissLists服務 下載KissLists鏡像 編輯部署文件 創建容器 檢查容器狀…

【滑動窗口】C++高效解決子數組問題

個人主頁 : zxctscl 專欄 【C】、 【C語言】、 【Linux】、 【數據結構】、 【算法】 如有轉載請先通知 文章目錄前言1 209. 長度最小的子數組1.1 分析1.2 代碼2 3. 無重復字符的最長子串2.1 分析2.2 代碼3 1004. 最大連續1的個數 III3.1 分析3.2 代碼4 1658. 將 x …

[rStar] 搜索代理(MCTS/束搜索)

第2章:搜索代理(MCTS/束搜索) 歡迎回到rStar 在前一章中,我們學習了求解協調器,它就像是解決數學問題的項目經理。 它組織整個過程,但本身并不進行"思考",而是將這項工作委托給其專家團隊。 今天&#x…

Electron 核心模塊速查表

為了更全面地覆蓋常用 API,以下表格補充了更多實用方法和場景化示例,同時保持格式清晰易讀。 一、主進程模塊 模塊名核心用途關鍵用法 示例注意事項app應用生命周期管理? 退出應用:app.quit()? 重啟應用:app.relaunch() 后需…

Qt C++ 圖形繪制完全指南:從基礎到進階實戰

Qt C 圖形繪制完全指南:從基礎到進階實戰 前言 Qt框架提供了強大的2D圖形繪制能力,通過QPainter類及其相關組件,開發者可以輕松實現各種復雜的圖形繪制需求。本文將系統介紹Qt圖形繪制的核心技術,并通過實例代碼演示各種繪制技巧…

二分搜索邊界問題

在使用二分搜索的時候&#xff0c;更新條件不總是相同&#xff0c;雖然說使用bS目的就是為了target&#xff0c;但也有如下幾種情況&#xff1a;求第一個target的索引求第一個>target的索引求第一個>target的索引求最后一個target的索引求最后一個<target的索引求最后…

【springboot+vue3】博客論壇管理系統(源碼+文檔+調試+基礎修改+答疑)

目錄 一、整體目錄&#xff1a; 項目包含源碼、調試、修改教程、調試教程、講解視頻、開發文檔&#xff08;項目摘要、前言、技術介紹、可行性分析、流程圖、結構圖、ER屬性圖、數據庫表結構信息、功能介紹、測試致謝等約1萬字&#xff09; 二、運行截圖 三、代碼部分&…