#ruby陣列可以容納不同的物件,並且沒有多維陣列的概念
#陣列的定義**********=
a =array.new
a = array.new(5) #
建立 5個nil 元素的陣列 [nil,nil,nil,nil,nil]
a = array.new(5,1) #
建立5個 元素都是1的陣列 [1,1,1,1,1]
a = #
建立乙個空陣列
a = [1,"
a",3,2]
%w(one two three) #
返回的是 ["one","two","three"]
#陣列小妙用: 利用陣列並行賦值
a,b,c,d = [1,"
a",[1,2],(1..5)]
#運算和常用方法**********==
[1,2]<<3 #
返回 [1,2,3]
[1,2]+[1,3] #
返回 [1,2,1,3]
[1,2,3]-[1,4] #
返回 [2,3]
[1,2,3]&[3,4] #
返回[3]
[1,2,3]|[3,4] #
返回[1,2,3,4]
[1,2]*2 #
如果*號後面是數字,會進行重複 ,返回[1,2,1,2]
[1,2]*'--'
#如果是字串,會用該字串連線陣列,返回乙個字串, 返回 '1--2'
#列舉能用的方法都能用在陣列上
ary.size/ary.length #
陣列包含元素的個數
ary.concat(other_array) #
把other_array中的元素新增到arr中
ary.delete(obj) #
刪除陣列中和obj相等的元素,如果找到則返回obj,否則返回nil
#eg:
a=[1,2,3,3]
a.delete(3) #
a = [1,2] 並且返回3
ary.delete(index)
#刪除指定索引的元素,並返回刪除的obj
ary.delete_if #
刪除符合條件(使block為true)的元素
ary.first/ary.last #
返回陣列的第乙個元素/最後乙個元素
ary.compact #
返回乙個陣列的副本,並刪除陣列中的nil元素
[nil,1,2,nil,3,4].compact #
返回 [1,2,3,4]
ary.flattern #
遞迴陣列中的陣列,並返回乙個大陣列
[1,2,[3,4],5].flattern #
返回[1,2,3,4,5]
ary.index(obj) #
返回元素的索引
[1,2,3].index(3) #
返回2ary.insert(index,obj) #
將某個物件插入到陣列的index中
ary.join(separator) #
用分隔符合併陣列並且返回乙個字串
[1,2,3].join("
-") #
返回 "1-2-3"
ary.pop/ary.shift #
刪除陣列中的最後乙個/開頭乙個 元素
ary.push(obj) #
將obj追加到陣列的後面
ary.replace(other_array) #
使用other_array替換原來的內容
ary.reverse #
返回乙個反序的陣列
磁碟陣列筆記
pvcreate dev sdg vgcreate enipvg dev sdg lvcreate enipvb n lv name size 50g mkfs t reiserfs dev enipvg lv name mount dev enipvg lv name mnt lv name um...
筆記 樹狀陣列
主要看圖 i往上找就是i 2 k 往下就是減 k是i的二進位制右邊0的個數 2 k 直接等於i i 傳送門 寫的很好 總結 首先,明白樹狀陣列所白了是按照二分對陣列進行分組 維護和查詢都是o lgn 的複雜度,複雜度取決於最壞的情況,也是o lgn lowbit這裡只是乙個技巧,關鍵在於明白c陣列的...
筆記 滾動陣列!
滾動陣列。對於我這種不會用結果怕各種mle和各種tle的人來說確實是一向短處 滾動的實質 膜法光輝 霧 吐槽不多說現在我們來看一下 乙個dp,平常如果需要1000 1000的空間,其實根據dp的無後效性,可以開成2 1000,然後通過滾動,獲得和1000 1000一樣的效果。滾動陣列常用於dp之中,...