原创 劃分鏈表後連接鏈表 leedcode166

#include<stdio.h> struct ListNode{ int val; ListNode* next; ListNode(int x) : val(x),next(NULL){} }; class Sol

原创 逆序鏈表從m到n位置

目錄1 逆置整個鏈表2 逆置一個鏈表的m到n位的元素,返回逆置後的頭結點核心步驟1.如何找到逆置段的開始和結束位置?2.幾個關鍵位置3.如何連接逆置後的逆置段分類討論逆置段是否包括逆置前鏈表的頭結點?學習地址 1 逆置整個鏈表 #

原创 兩求兩個鏈表的交點,若無交點返回null, 兩種方法,時間複雜度爲O(n)和O(n logn)

目錄方法1使用set必備知識set的使用利用set求兩個鏈表的交點方法2 分別求出鏈表長度做差後同時移動核心思想:1.分別求出兩個鏈表長度2.用長的減去短的得到差值delta3.讓長鏈表的頭指針向前移動delta位,兩個鏈表此時頭

原创 頭插法和尾插法創建鏈表 鏈表的11種常用操作(詳解)

文章目錄尾插法頭插法單鏈表的常用操作 尾插法 #include<stdio.h> #include<malloc.h> //尾插法 struct list{ int data; struct list *next; };

原创 選擇排序排序和冒泡排序的比較

選擇排序 注意對比冒泡排序中的if判斷語句. #include<stdio.h> void print(int a[],int n){ for(int i=0;i<n;i++){ printf("%d ",a[i]);

原创 海灘上有一堆桃子,五隻猴子來分。 第一隻猴子把這堆桃子憑據分爲五份,多了一個, 這隻猴子把多的一個扔入海中, 拿走了一份。 第二隻猴子把剩下的 桃子又平均分成五份, 又多了一個,它同樣把多的一個扔入

核心思想就是 num = (num-1)*(4/5),num要連續5次滿足這個式子還是是整數,就是最小數量 #include<stdio.h> /** * 猴子分桃子 , 樹林裏有一堆桃子 , * 第一個猴子過

原创 爲什麼快速排序第二個while循環內仍然要判斷 low 小於 high 以及爲什麼要從high減減開始.

每次循環結束後輸出一下返回的位置信息 pivot 你就發現一趟後返回的位置比實際的要大1 就是因爲第二層內的while沒有low < high的判斷的約束,導致low和high的值錯亂 #include<stdio.h> int

原创 冒泡排序優化算法 不用return

#include<stdio.h> void print(int a[],int n){ for(int i=0;i<n;i++){ printf("%d ",a[i]); } printf("\n"); } vo

原创 二部圖 歐拉圖 哈密頓圖 平面圖 判定條件

目錄石墨筆記 PPT版1 二部圖 偶圖 雙圖 二分圖 Ks,t G(V1,V2,E)2 歐拉圖3 哈密頓圖4 平面圖歐拉公式推論: n-m+r = k+1m <=3n-6是平面圖的必要條件m <= ((k-2)/k )*(n-2

原创 雙向冒泡排序 含註解 含過程

/* 雙向冒泡排序是在冒泡排序的基礎上改進而來的,其基本思想跟最原始的冒泡排 序是一樣的,只不過排序過程稍微優化了一點。 我們還是以整數升序排序爲例來簡單說說這種排序的過程: 首先從前往後把最大 數移到最後,然後反過來從後往前把最

原创 自動朗讀程序,表白神器 用C語言文件操作實現

保證對方揚聲器驅動完整能夠正常發生,且默認打開vbs文件方式是播放,不是用記事本打開 /* VBS是基於Visual Basic的腳本語言。VBS的全稱是:Microsoft Visual Basic Script Edition

原创 c語言 一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少? 待分析過程

完全平方數暴力法利用平方差公式分析取值範圍極限法判斷範圍 暴力法 #include <stdio.h> int main() { int i; int j; int k; for(i = 0; i < 1000;

原创 除非p否則q 除非P否則非Q 只有p才q 徹底搞懂離散數學命題符號化的邏輯 附公務員真題講解

語句大全你要結婚了,女朋友分別對你說了這幾句話,你好好捋一捋1 如果你給我買鑽戒,那麼我嫁給你補一下語文: 只有2 只有你給我買鑽戒,我才嫁給你補一下語文: 除非、才補一下語文: 否則3 除非你給我買鑽戒,否則我不嫁你4 除非你給

原创 操作系統 進程管理的重要概念理解

操作系統圖文版本1 操作系統的基本概念1.1操作系統的概念1.2操作系統的特性2 進程的管理2.1.爲什麼引入進程?2.2什麼是進程?進程由什麼組成?3.進程是如何解決問題的?4.進程和程序的區別線程調度5 進程和線程的區別?相

原创 快速排序 快速理解

#include<stdio.h> #define max 10 void print(int a[],int n); //打印 int Partition(int a[],int low,int high); //