用Scala實現集合中相鄰元素間的差值

2022-07-05 06:27:13 字數 465 閱讀 6069

**這東西,不寫肯定不行,新學scala不久,將實際遇到的一些問題記錄下來,日後也好查詢。

今天講的是如何計算同一集合中元素兩兩之間的差值,即求開始集合(a,b,c,d)中(b-a,c-b,d-c)

val l1 = 1 to 10 tolist

val l2 = l1.tail

l1.zip(l2).map(p=>(p._2 - p._1)

上述**即可求出兩兩差值。**含義稍作解釋:

tail表示乙個集合中除首元素外的剩餘元素,也是乙個集合。

zip將兩個集合組成乙個數值對集合,比如原來有兩個集合分別是(a,b,c,d), (1,2,3,4),使用zip之後,形成((a,1),(b,2),(c,3),(d,4))

map操作中的p._1和p._1表示tuple中的第乙個元素和第二個元素

既然講了首元素和剩餘元素,肯定要講到其對立面。分別引述如下

用scala實現快速排序

author 孤星魅影 乙個簡單的整型陣列快速排序 scala大部分符號都是左結合,只有 的連線符是右結合,a b c 相當於a b c 它會優先執行冒號右邊的表示式。def sortint arr array int array int 乙個完整的快速排序的方法 可以傳入任意型別的buffer對其...

用lambda函式實現列表中相鄰數之間的迭代

把數字字串轉換為數字的問題。1 把乙個n位數按小數點前後分開成兩個列表l1,l2 要用乙個演算法迭代可以將小數點後的數先縮小10 n倍 2 前後分別用秦九韶演算法還原數值。3 lambda函式對兩個列表中的數實現同種演算法的迭代。from functools import reduce def st...

BFS 矩陣中「相鄰」元素的個數

問題概述 給出乙個n m矩陣,對於矩陣元素 x,y 稱其上下左右四個位置 x,y 1 x,y 1 x 1,y x 1,y 是 相鄰 的。如果乙個矩陣的元素中只有0,1,若有若干個1是相鄰的,則這些1就構成了乙個 塊 求矩陣中塊的個數。例如 6 7矩陣中,塊的個數為4 0 1 1 1 0 0 1 0 ...