原创 三種方法找到數組中的第k個最大元素【此後無良辰】

沒想到今天考試竟然遇到了原題第k小,其實就是n-k+1大元素(本篇之前寫的放私密了) 分界線--------------------------------------------------------------------

原创 將有序數組轉換爲二叉搜索樹【此後無良辰】

題面描述 基本思路 二叉搜索樹的中序遍歷是升序序列,題目給定的數組是按照升序排序的有序數組,因此可以確保數組是二叉搜索樹的中序遍歷序列。 給定二叉搜索樹的中序遍歷,是否可以唯一地確定二叉搜索樹?答案是否定的。如果沒有要求二叉搜索

原创 一道題解釋二個棧實現隊列功能【此後無良辰】

題面描述6.30每日一題 基本思路 使用兩個棧 一個棧q1用來進行插入操作 一個棧q2用來進行刪除操作 每一次刪除操作判斷q2是否爲空,爲空則將q1數據全部壓入q2 不爲空則返回top 以下解說圖來自於leetcode官方 c

原创 堆排序(大根堆對應升序的原理)

定義 堆是具有以下性質的完全二叉樹:每個結點的值都大於或等於其左右孩子結點的值,稱爲大頂堆;或者每個結點的值都小於或等於其左右孩子結點的值,稱爲小頂堆。如下圖: 應用 排序 :堆排序是一種選擇排序,它的最壞,最好,平均時間複雜度

原创 一道題解釋原地哈希【此後無良辰】

題目描述(Leetcode每日一題) 基本思路 1.此題如果沒有空間限制可以使用普通哈希表功能記錄 2.此題如果沒有時間限制可以使用二分查找把時間控制在nlonn 但是這道題全有 於是 今天學到一個別人自創的算法名字(也不知

原创 十大排序算法(附分類-對比-數據-代碼)【此後無良辰】

分類圖 對比圖 平均時間 最好時間 最壞時間 輔助空間大小 是否穩定排序 數據圖表 數據全是隨機數生成,測試三次取平均數單位毫秒 所有的時間只是排序耗費的時間,不包括讀入和輸出 例如 start =

原创 一道題解釋記憶化搜索【此後無良辰】

題目描述(Leetcode每日一題打卡) 基本思路 1.dfs+回溯 class Solution { public: int len; map<string,int> dir; bool sym=0;

原创 一道題解釋前綴和+二分查找【此後無良辰】

題目描述 基本思路 1.暴力枚舉法 o(n^2); class Solution { public: int minSubArrayLen(int s, vector<int>& nums) { int

原创 第一次學校新生賽

補一下總結 新生賽分三次 此次爲第一次 一共六道題目 最後一道題馬拉車 第三道題明顯的ap都沒看出!!! (AC率5/6)

原创 哈夫曼樹製作壓縮軟件 【此後無良辰】

哈夫曼樹製作壓縮軟件 太愛bandzip了,在這裏推薦這款壓縮軟件(我的是低仿) 以下爲自己軟件圖片 要求: (1)壓縮對象爲外存任意格式任意位置的文件。 (2)運行時,壓縮原文件的規模應不小於5K。運行後,外存上保留壓縮後的文

原创 輸出所有的拓撲排序【此後無良辰】

拓撲排序 對一個有向無環圖(Directed Acyclic Graph簡稱DAG)G進行拓撲排序,是將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若邊<u,v>∈E(G),則u在線性序列中出現在v之前。 通常,這樣

原创 Qt做計算器從安裝到完成(這可能是全網最簡單詳細的教程)【此後無良辰】

要求 老師給的作業要求 :不然我也不會學 .設計並實現計算器。 要求:在課後作業-03、課後作業-05的作業內容基礎上 (1)增加圖形交互功能。 (2)增加3個邏輯運算符 &&、||、 !,並能處理邏輯運算符和算術運算符的混合運算

原创 單元最短路徑最基本的三種算法!!!

floyd floyd() { rep(k,1,n) rep(i,1,n) { // if(a[i][k]==maxn||i==k) continue; rep(j,1,n) { a[i

原创 delete[] p與delete p的區別

operator new 和 operator delete函數有兩個重載版本,每個版本支持相關的new表達式和delete表達式:void* operator new (size_t); // allocate a

原创 關於二分搜索的點點滴滴的積累

此文章爲轉載他人 二分查找 二分查找算法,說白了就是在有序的數組裏面給予一個存在數組裏面的值key,然後將其先和數組中間的比較,如果key大於中間值,進行下一次mid後面的比較,直到找到相等的,就可以得到它的位置。 前提:線性表中