陣列驚豔絕倫的操作:
問題描述:給定兩個陣列,a和b。給定兩種操作
a:刪除陣列首位元素,所有元素進行前移,末尾新增任意元素。記為一次操作
b:可以將任意元素進行修改。記為一次操作
求:最少經過幾次操作可以把b變成a。
解題思路:毫無疑問,能用a操作完成的我們不用b操作,a操作無法獲得》1的收益時我們再進行b操作。
cin >> s;a[s] = i;
for (i = 1; i <= n; i++)
cout << n - max; //c下標次a操作,其餘全部b操作
這個陣列c著實巧妙,下標所記錄的是相同數字照應需要向前移動幾位。
取可以照的最多位移動即可。 開始做這題時我真的被反覆幾次a操作困擾了好久。
用下標做為輸入值,值作為記錄下標(或者一些標誌)。
在演算法裡感覺還是很常見的。尤其問題規模不大時,空間換時間..
陣列那些事兒
1.定義 資料就是具有相同的資料型別的一組資料集合.2.初始化一維陣列 方式1 int arr1 new int 方式2 int arr2 3.陣列內元素個數 陣列.legthpublic static void main string args 進行累加求和的變數sum int sum 0 sys...
鏈結那些事兒
鏈結,就是將不同部分的 和資料收集和組合成為乙個單一檔案的過程,這個檔案可被載入到儲存器中執行。鏈結可以執行於編譯時 compile time 也就是源 被翻譯成機器 時 eg.普通的鏈結器鏈結,以及靜態鏈結庫,由靜態鏈結器鏈結 也可以執行於載入時 例如動態鏈結庫的載入時鏈結 也可以執行於執行時 r...
指標那些事兒
1.野指標 也叫懸擺指標,迷失指標 野指標是導致bug的罪魁禍首之一。對指標呼叫delete後 釋放掉了它指向的記憶體,野指標還是指向原來的位址 如果沒有重新賦值就使用它,將導致難以預料的後果。因為此時操作野指標,它指向的記憶體位址可能已經分配給其他變數在使用了。所以指標在delete之後,如果不再...