筆試程式題專項 2023年408

2021-09-11 19:37:47 字數 794 閱讀 9760

題目描述,

給定乙個鍊錶,儲存的內容是1,2 3,4,5,6,7,8,9,0 共2n個數字,請設計演算法,將其修改為 1 0 2 9 3 8 4 7 5 6

#include#include#includeusing namespace std;

typedef struct node

node,*pnode;

pnode head,p;

void print(pnode head)

couttt->next=null;

t->next=tt;

t=t->next;

}}void change(pnode head,int n)

while(index++next;

}p2=p1->next;

p1->next=null;

index=1;

//後半部分逆轉

p3=p2->next;

p2->next=null;

while(index++next;

p3->next=p2;

p2=p3;

p3=p1;

} //p2指向後半部分

//鍊錶合併

p1=head->next; //p1指向 前半部分

index=0;

while(index++next;

p1->next=p2;

p2=p2->next;

p1->next->next=p3;

p1=p3;

}}int main()

筆試程式題專項 2023年408

說明,1 充分抓住題目的隱藏的關鍵資訊,比如時間複雜性要小,那麼空間輔助性可以適當放鬆,另外資料範圍不超過n 2.鍊錶的基本結構 3.注意 times abs q data 1 include include includeusing namespace std define imax 100 1 ...

2023年408的演算法題

設q指向末尾第k個結點,p指向最後乙個結點 假設為n 那麼當k小於等於鍊錶長度時,n k 1 n k 1 n k 1 為p和q結點相差的距離。故有,當p移動k 1個結點後,q再開始移動,當p指向最後乙個結點時,q剛好指向倒數第k個結點 如果k大於鍊錶長度,則p指向鍊錶最後乙個結點後,q都未曾移動,即...

2023年的408演算法題

思路一 使用hash對映打表,每出現一次次數加1,如果次數有超過n 2,則存在主元素,反之,則不存在。缺點 需要輔助陣列 思路二 兩兩相互抵消。如果陣列中存在大於一般的相同元素,首先假設第乙個元素為主元素的候選元素 統計個數為1 如果目前元素統計的個數大於0,遇到相同的數字 個數加1,不同的數字 個...