陣列 簡介 初始定義

2022-09-24 06:00:15 字數 2315 閱讀 7838

陣列是在程式設計中,把具有相同型別的若干元素按有序的形式組織起來的一種形式。

作為線性表的實現方式之一,陣列中的元素在記憶體中是連續儲存的,且每個元素佔相同大小的記憶體。

,通過索引和陣列第 1 個元素的記憶體位址,可以計算出其它元素的記憶體位址,進而訪問記憶體位址裡儲存的內容。索引與記憶體位址的關係如下圖所示。

陣列通過索引快速訪問每個元素的值。在大多數程式語言中,索引從 000 算起。

在不同的程式語言中,陣列的實現方式具有一定差別。比如 c++ 和 j**a 中,陣列中的元素型別必須保持一致,而 python 中則可以不同。相比之下,python 中的陣列(稱為 list)具有更多的高階功能。

做好初始定義

1.移動零:

給定乙個陣列nums,編寫乙個函式將所有0移動到陣列的末尾,同時保持非零元素的相對順序。(要求不能新建陣列)

解法一:快指標遍歷陣列,慢指標指向0元素,快指標每次遇到非0,即將快慢指標指向的元素進行交換。**如下:

class

solution }}

void swap(int nums,int slow,int

quick)

}

解法二:先對非0元素進行排序,剩餘位置全部用0填充,**如下:time-beat100%

class

solution

}while(index}}

2.移除元素:

給你乙個陣列 nums 和乙個值 val,你需要 原地 移除所有數值等於 val 的元素,並返回移除後陣列的新長度。

不要使用額外的陣列空間,你必須僅使用 o(1) 額外空間並 原地 修改輸入陣列。

元素的順序可以改變。你不需要考慮陣列中超出新長度後面的元素。

題解:時間100%

class

solution

}return

index;}}

錯誤:第一遍答案返回了 index+1;導致陣列元素比正確答案多乙個。

3.刪除排序陣列中的重複項:

給你乙個 公升序排列 的陣列 nums ,請你 原地 刪除重複出現的元素,使每個元素 只出現一次 ,返回刪除後陣列的新長度。元素的 相對順序 應該保持 一致 。

由於在某些語言中不能改變陣列的長度,所以必須將結果放在陣列nums的第一部分。更規範地說,如果在刪除重複項之後有 k 個元素,那麼 nums 的前 k 個元素應該儲存最終結果。

將最終結果插入 nums 的前 k 個位置後返回 k 。

不要使用額外的空間,你必須在 原地 修改輸入陣列 並在使用 o(1) 額外空間的條件下完成。

題解:從陣列下標1開始遍歷,若當下元素與上一陣列下標對應的元素一直,則跳過,否則將元素賦值給 慢指標對應的陣列。

class

solution

nums[index++] =nums[i];

}return

index;

}}//

time-beat 100%

4.刪除排序陣列中的重複項 ii

給你乙個有序陣列 nums ,請你 原地 刪除重複出現的元素,使每個元素 最多出現兩次 ,返回刪除後陣列的新長度。

不要使用額外的陣列空間,你必須在 原地 修改輸入陣列 並在使用 o(1) 額外空間的條件下完成。

題解:與上題題解的有所區別

index 與 i 從 『1 』 變為 『2』

判斷條件由與原陣列下標進行對比變為與額外設定的新陣列index下標進行對比。這是因為該題中對陣列進行比較判斷時跨了2個陣列下標,若原地進行比較,某些情況下,會出現錯誤(例如 x,2,2,x 遍歷到第乙個 2時該元素可能 會被塞入第乙個x的位置,判斷第二個2時,此時由於第乙個x原位置已經變更為2,因為程式會判斷 出現3個連續的2 (此時陣列元素為 2,2,2,x),因此比較物件,只能是原陣列下標『i』指向的元素,與新陣列下標『index』指向的元素進行比較,即每次想將舊陣列元素塞入新 陣列元素時,將預塞入元素與新陣列中的元素進行比較,防止連續放入3個相同數字)

class

solution

}return

index;

}}//

time-beat 100%

我的程式設計師開始定義

要想學的好,就應該不斷地去嘗試。當我們在一次又一次的失敗中站起來時,其實我們已經成功了。用愛迪生的思維來說,通過這些失敗,我們會不斷的改進,不斷地kiss the bug。在此過程中,我們和兄弟姐妹們一起 出現的種種問題,共同解決。讓我們明白 有兄弟,不孤單 c 這是我們所接觸的第乙個高階語言,但一...

C 陣列初始化及定義

一 一維陣列 靜態 int array 100 定義了陣列array,並未對陣列進行初始化 靜態 int array 100 定義並初始化了陣列array 動態 int array new int 100 delete array 分配了長度為100的陣列array 動態 int array new...

陣列的定義與初始化

人們借助計算機來記錄每月的開支 日降水量 季度銷售額 企業可以借助計算機來管理員工薪水 倉庫存貨清單等等。採用陣列可以有效便捷地處理各種型別的資料。陣列 array 是由一系列型別相同的元素構成。可以使用申明來告訴編譯器需要乙個陣列,包含陣列元素的型別和陣列元素的數目。簡單陣列的定義char cod...