原创 java 使用Comparable接口實現自定義比較

最近寫水題,很多都是要實現:按A字段降序排序,若相同則按B字段升序排序。利用JAVA的Comparable接口可以很輕易的實現。很多博客在寫重寫compareTo方法時,都只是說 "大於返回1 小於返回-1 相等返回0",這樣的描述看得讓

原创 PAT (Advanced Level) Practice 1115 Counting Nodes in a BST

1、建二叉排序樹 2、層序遍歷,我是把每層的節點數記錄下來,最後輸出倒數兩個 ps:當n=1時,輸出“1 + 0 = 1”  #include <iostream> #include <vector> #include <queue>

原创 PAT (Advanced Level) Practice 1029 Median

輸入不要用cin,用scanf,不然會超時。真的要吐血了,沒想到是這個點...... 使用cin輸入數據時最後一個測試點超時,使用scanf直接89ms過,題限是200ms 在數據量較大時,用scanf能明顯減少時間... 不過大部分題超

原创 No validator could be found for constraint 'javax.validation.constraints.NotEmpty'

報錯: javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.c

原创 PAT (Advanced Level) Practice 1103 Integer Factorization

回溯就可以解,記一個坑,在計算a的n次方時,如果你需要的是整數,最好不要用pow,而是自己寫一個。 我的編譯器使用pow的時候,如果傳的值不是double類型的而是int類型的數值,會產生比較大的誤差,如10的2次方可能的出的結果就是99

原创 SpringCloud Feign+Eurake實現應用間通信

說明:該文章只是簡單描述瞭如何進行通信,並沒有關於feign的詳細註解和高級使用。(大佬看看我寫的有沒有問題也是可以的)。 流程簡述:一個程序作爲eureka服務端供其餘兩個應用註冊,另外兩個應用註冊後使用feign進行應用間通信。 使用

原创 PAT (Advanced Level) Practice 1006 Sign In and Sign Out

1、使用sscanf,可節省對字符串的分割的代碼 2、注意scanf讀字符串時,是以空格和回車結尾的 3、將signIn和signOut時間轉化成秒,然後一遍循環,找出signIn最小的id和signOut最大的id #include

原创 PAT (Advanced Level) Practice 1051 Pop Sequence

思路:遍歷每個序列,遍歷時維護一個值maxn(已遍歷過的數中的最大數),maxn初始值爲0。 對於每個數字 i: 1、若 i 大於maxn,則往棧中push 【maxn+1,i】之間的數(端點值要取),接下來判斷是否超出容量,超出則不能構

原创 PAT甲級(Advanced Level) Cars on Campus (30)

思路: (1)將vector先按plate_number排序,若相同則按時間大小排序,這樣可以使一個plate_number的記錄按時間順序排在一起 (2) 遍歷vector,若前一條數據的plate_number與後一條相同,且前一條是

原创 PAT (Advanced Level) Practice 1013 Battle Over Cities (25分)

題意:一個連通圖,刪除一個結點後,至少連幾條線可以將圖再次還原成聯連通圖。顯然,兩個連通分量要一條,三個連通分量要兩條,....N個連通分量要N-1條。深度優先搜索最外層的循環可判斷到底有幾個連通分量。 #include <iostre

原创 PAT (Advanced Level) Practice 1026 Table Tennis (30分)

這題有點坑,主要是題意理解上,編碼都比較簡單。 先說明下題意,一個球館有n個桌子從1到N編號,其中有k臺vip桌子。隨之,用戶也有普通和vip之分。每次用戶來時給其分配編號最小且可用的桌子,如果沒有則等待。 附加條件: 1、每個人玩的時間

原创 PAT (Advanced Level) Practice 1085 Perfect Sequence

最後一個測試點過不了,是因爲m*p可能超過了int的範圍,導致判斷條件出錯,所以將數據類型改成longlong就好了。  #include <iostream> #include <vector> #include <stdio.h>

原创 PAT (Advanced Level) Practice 1086 Tree Traversals Again

根據操作寫遞歸就行了,注意一點,data不是從1到n順序來的,所以要自己去獲取push後面的數字,不能簡單的用計數器++。  #include <iostream> #include <string> #include <vector>

原创 PAT (Advanced Level) Practice 1052 Linked List Sorting

注意:給出的結點中,有的結點可能不再鏈表上,所以要遍歷判斷一下。 另外,所有的結點可能都不在鏈表上,這時候要輸出“0 -1” ps:“0 -1”這個有點流氓,當時做的時候知道會存在所有結點都無效的情況......但是就是不知道如何輸出

原创 PAT (Advanced Level) Practice 1004 Counting Leaves

 1、不是二叉樹,存儲方式用到了代碼中的結構體。  2、因爲結點編號在100以內,可以讓第i個結點就存儲在tree[i]中,方便查找  3、方法:建樹然後層序遍歷,遍歷時記錄layer,和當層無葉子結點的結點個數  注意:這題題目有個:T