#29277: C++低記憶體判斷


seancai78@gmail.com (風月春秋)

學校 : 臺北市立成功高級中學
編號 : 176406
來源 : [140.113.124.212]
最後登入時間 :
2024-10-07 23:20:19
a291. nAnB problem | From: [1.164.149.9] | 發表日期 : 2022-02-11 00:46

*注:筆者表達能力欠佳且過程複雜,如看不懂,請參閱他人詳解

核心資源節省

for(int i=0;i<4;i++)

{

if(sto[i]==test[i])

{

a[i]++;

}

}

for(int i=0;i<4;i++)

{

for(int k=0;k<4;k++)

{

if(test[i]==sto[k]&&a[i]==0&&a[k]==0&&b[k]==0)

{

b[k]++;

break;

}

}

}

a[i]==0&&a[k]==0&&b[k]==0

詳細解釋:

a[i]是算在"測試資料"和"原本資料"上的,所以a[i]==1代表"測試資料"已被讀取無須再讀;而a[k]==1代表"原本資料"已被讀取無須再讀

b[k]是算在"原本資料"上的,所以b[k]==1代表"原本資料"已被讀取無須再讀

a[4],b[4]陣列皆為bool陣列固可節省空間,且不須改變原本資料內容,意即不須多一個陣列臨時儲存

用此方法約可節省7KB的記憶體

 
ZeroJudge Forum