原创 主元素查找算法實現

首先明白什麼是主元素,一個整數序列,相同元素的個數大於序列元素的一半就是主元素,,另外元素取值不大於元素個數 下面是算法實現: #include<cstdio> const int maxn=50; int M[maxn],n;

原创 set常見用法

set翻譯爲集合,是一個內部自動有序且不含重複元素的容器,若使用set,需要使用set頭文件,#include<set> set的定義 單獨定義 set<typename> name; set數組定義 set<typenam

原创 (PAT甲)1008 Elevator

這道題比較水,就是兩道if語句判斷當前樓層與到達樓層的關係即可,每層樓需要停留5秒的時間,特別注意的是當要求運行樓層軌跡完成時電梯不會返回0層,所以需要手動將到達樓層賦給當前樓層 #include<iostream> using nam

原创 (PAT甲)1001 A+B Format

這道題是要在結果數字中以逗號分隔,基本思路是將數字用數組存儲,然後逆序遍歷並輸出逗號 #include<iostream> #include<algorithm> using namespace std; int main() {

原创 用回溯法實現n皇后問題

首先說一下回溯法,如果在到達遞歸邊界前的某層,由於一些事實導致已經不需要任何一個子問題遞歸,就可以直接返回上一層,這種方法叫做回溯法。 #include<cstdio> #include<cmath> const int maxn

原创 (pat甲)1078 Hashing

這道題是給出散列表長Tsize和欲插入的元素,將這些元素按讀入的順序插入散列表中,其中散列函數爲H(key)=key%Tsize 先對輸入的Tsize進行素數判斷,若不是素數,則要找到第一個比它大的素數,然後開一個bool型數組h

原创 遞歸思想

什麼是遞歸呢?遞歸就是反覆調用自身函數,但是每次把問題範圍縮小,直到範圍縮小到可以直接得到邊界數據的結果,最後再在返回的路上得到相應的解。 遞歸的邏輯中有兩個重要的概念: 遞歸邊界,遞歸邊界用來返回最簡單底層的結果 遞歸式,也叫

原创 算法的基本概念

算法是指對特定問題的一種求解步驟的描述 算法的特性: 有窮性,一個算法必須在有窮時間內完成 確定性,算法中每條指令必須有確切含義,不會產生二義性 可行性,算法中描述的操作是可以通過已經實現的基本運算執行有限次來實現的 輸入,一個

原创 (Pat 甲)1104 Sum of Number Segments

這道題的目的是統計元素個數爲n的序列的每一個在不同序列長度的連續片段中出現的次數之和。通過舉例可以得出,若當前是第i個數,那麼其總出現次數等於i*(n+1-i) #include<iostream> using namespace st

原创 vs2017讀取訪問權限衝突

vs2017提示讀取訪問權限衝突,原因通常是數組超限,增大數組界限即可,記錄在博客,以此告誡。

原创 (Pat甲)1015 Reversible Primes

首先說明一下題意,就是輸入一個數,然後判斷它是不是素數,如果是,將它進行進制轉換,轉換後得到的數再次進行素數判斷,如果是素數。就輸出Yes,否則輸出No #include<cmath> #include<cstdio> bool

原创 鏈表小結

單鏈表 也就是線性表的鏈式存儲,它是指通過一組任意的存儲單元來存儲線性表中的數據元素,每個鏈表結點包含存放數據元素的數據域(data域)和存放後繼結點的指針域 單結點的結點類型描述 typedef struct LNode {

原创 “error MSB6006: “CL.exe”已退出,代碼爲 2。”

編譯環境爲vs2019,錯誤原因是函數未寫返回值,記錄在博客,以此警醒,希望以後自己不要再犯類似錯誤

原创 數據結構基本概念

數據:數據是信息的載體或者說對客觀事物的符號表示 數據元素:數據元素是數據的基本單位 數據對象:數據對象是具有相同性質的數據元素的集合,也就是數據的一個子集 數據類型:數據類型是一個值的集合和定義在此集合上的一組操作的總稱 原子

原创 線性表的定義

線性表的順序存儲也叫順序表,是用一組地址連續的存儲單元依次存儲線性表中的數據元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰。第一個元素存儲在線性表中的起始位置,第i個元素的存儲位置後面緊接着存儲的是第i+1個元素,得知順序表的特點是