資料結構基礎訓練
二、二維陣列
三、字串
心得體會
利用陣列和字串進行簡單的資料結構練習,以leetcode程式題為物件,以c#作為開發語言,從而總結兩者的異同。
(1)題目分析
給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。
(2)設計思想
若目標在陣列中,直接返回下標,若不在,則先將其插入,從小到大排序後返回該元素的下標。
(3)核心**
public
static
intsearchinsert
(int
nums,
int target)
}
nums1[nums.length]
= target;
for(
int i =
0; i < nums1.length; i++)}
temp = nums1[y]
; nums1[y]
= nums1[i]
; nums1[i]
= temp;
}for
(int i =
0; i < nums1.length; i++)}
return x;
}
(4)效能分析
(1)題目分析
若m × n矩陣中某個元素為0,則將其所在的行與列清零。
(2)設計思想
先確定矩陣中元素為0的位置,再遍歷進行置零。
(3)核心**
public
static
void
setzeros
(int
matrix)}}
for(
int i =
0; i < n; i++)}
}}
(4)效能分析
(1)題目分析
翻轉後的字串首尾不含空格,每個單詞之間只允許乙個空格,單詞內的字元順序不變。
(2)設計思想
對原字串進行預處理,保證首尾無空格,單詞間只有乙個空格;儲存處理後的字串,再以單詞為整體倒序輸出。
(3)核心**
public
class
solution
public
static
string
reversewords
(string s)}}
if(s[^1
]!=' ')
x = x.
trim()
; y = x.
split()
;for
(int j =
0; j < y.length; j++)}
return m;
}
(4)效能分析
1.陣列可以修改,字串不能修改。進行刪除,也只能刪除整個字串。
2.二維陣列的陣列元素為陣列,訪問和普通陣列類似。陣列,字串均可以用索引進行訪問,都有.length屬性,操作符也有很多相同的。
3.陣列可以動態分配記憶體空間,二維陣列可以進行矩陣操作。
4.在效能分析上,程式占用記憶體比較少,若減少迴圈的次數,可以極大程度優化時間複雜度。對於程式細節,可以通過多次測試修改確定。
資料結構基礎訓練
1.陣列簡介 2.二維陣列簡介 3.字串簡介 1尋找陣列的中心索引 2旋轉矩陣 3最長公共字首 1.尋找陣列的中心索引 給你乙個整數陣列 nums,請編寫乙個能夠返回陣列 中心下標 的方法。陣列 中心下標 是陣列的乙個下標,其左側所有元素相加的和等於右側所有元素相加的和。如果陣列不存在中心下標,返回...
資料結構基礎訓練
字串相關題目練習 總結集合 由乙個或多個確定的元素所構成的整體。集合的特性 1.集合裡的元素型別不一定相同。2.集合裡的元素沒有順序。列表 列表是一種資料項構成的有限序列,即按照一定的線性順序,排列而成的資料項的集合,在這種資料結構上進行的基本操作包括對元素的的查詢,插入,和刪除。列表的特性 它具有...
資料結構基礎訓練 陣列與字串
kmp雙指標 1,理解陣列的 基本概念 及其 操作方式 2,理解 二維陣列 的基本概念,熟悉二維陣列的使用 3,了解 字串 的概念以及字串所具有的不同特性 4,理解字串匹配中的 kmp 演算法 5,能夠運用 雙指標 解決實際問題。集合是爺爺,列表是爸爸,字串是兒子 陣列的查詢 按位置查詢 時間複雜度...