PTA題目記錄

2021-10-25 17:29:29 字數 1235 閱讀 8740

題目:

已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的交集新鍊錶s3。

輸入格式:

輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−1表示序列的結尾(−1不屬於這個序列)。數字用空格間隔。

輸出格式:

在一行中輸出兩個輸入序列的交集序列,數字間用空格分開,結尾不能有多餘空格;若新鍊錶為空,輸出null。

輸入樣例:

1 2 5 -1

2 4 5 8 10 -1

輸出樣例:

2 5關鍵:

1.只需建立第乙個鍊錶,第二個序列不需建立,直接比較後建立交集鍊錶!!!(是某位機智博主的想法,好讚!!)

2.記錄一下序列一的最大數,若序列二的第乙個數比它大,那就沒有比較的必要了,直接null。對執行時間有幫助。

坑點:

這道題沒有集合裡的唯一性之說,交集裡1、1就是1、1,而不是1。

最終答案:

#include

using

namespace std;

//定義鍊錶結點

struct node

;int

main()

p2->next =

null

; e1 = p2-

>data;

//e1是序列一中最後乙個數字(最大的)

//建立交集鍊錶

int d2;

cin >> d2;

if(d2 <= e1)

//如果d2>e1,沒有交集,h2直接為null

} p2-

>next =

null

;delete p1;

}//輸出交集鍊錶

p1 = h2;

if(p1 ==

null

)cout <<

"null"

;else

cout << p1-

>data;}}

/*犯錯記錄:39行開始的if-else if- else結構,

一開始用了if-if-else,然後一直出錯,兩種結構天差地別!!

*/

自用PTA題目記錄0016

以下題目序號並無實際意義 回文數是一種很有趣的數,對於乙個不是回文數的數,我們可以通過以下操作來將其變成回文數 將數反轉,加到原數上,重複這個過程,直到得到回文數為止。輸入格式 輸入1個數字不超過1000的正整數。輸出格式 對每乙個輸入,輸出將其變成回文數的過程。每一行按以下個數輸出 a b c a...

自用PTA題目記錄0026

以下題目序號並無實際意義 通過讀者和借閱表,查詢讀者資訊,包括以下字段 賬號,姓名,性別,條形碼,借書日期和還書日期 建表語句 create table 讀者 賬號 char 4 primary key,姓名 char 5 性別 char 1 等級 char 4 出生日期 date,餘額 float...

PTA題目總結

字串解碼編碼 排序pta中對鍊錶的考察不像leetcode,大部分時候的考察是通過靜態鍊錶的方式 大多數是25分的題,用時大多在25 30分鐘,準確率不錯 靜態鍊錶一般會給 address key next 作為乙個node,一般情況下數量級會小於10 5 因此可以通過乙個大陣列存放給的節點,然後通...