LeetCode 將資料流變為多個不相交區間

2021-09-12 13:36:56 字數 1645 閱讀 9102

給定乙個非負整數的資料流輸入 a1,a2,…,an,…,將到目前為止看到的數字總結為不相交的區間列表。

例如,假設資料流中的整數為 1,3,7,2,6,…,每次的總結為:

[1, 1]

[1, 1], [3, 3]

[1, 1], [3, 3], [7, 7]

[1, 3], [7, 7]

[1, 3], [6, 7]

高階:

如果有很多合併,並且與資料流的大小相比,不相交區間的數量很小,該怎麼辦?

請先翻閱

leetcode 合併區間

leetcode 插入區間

不難發現此題與前面的兩道關於區間的題非常類似。此題的是插入乙個整數,其實就是插入乙個[val, val]的區間。

但有些不同,因為插入的[val,val]是只有乙個元素的區間,所以最多隻需要合併兩個區間,只有這種情況[numone, val - 1], [val + 1, numtwo]才需要合併區間為[numone, numtwo]。

/**

* definition for an interval.

* struct interval

* interval(int s, int e) : start(s), end(e) {}

* };

*/class

summaryranges

void

addnum

(int val)

else

if(itres-

>start == val +1)

else

if(itres-

>end >= val)

else

//如果這個位置是result的尾端

if(itres +

1== result.

end())

else

}else

if(itres-

>end +

1== val && val +1==

(itres +1)

->start)

else

if(itres-

>end == val || itres-

>end +

1== val)

else

if(val +1==

(itres +1)

->start)

elseif(

(itres +1)

->start <= val)

else}}

vector

getintervals()

};/** * your summaryranges object will be instantiated and called as such:

* summaryranges* obj = new summaryranges();

* obj->addnum(val);

* vectorparam_2 = obj->getintervals();

*/

雖說**比較長,但是思路很清晰。

352將資料流變為多個不相交區間(set集合)

1 題目描述 給定乙個非負整數的資料流輸入 a1,a2,an,將到目前為止看到的數字總結為不相交的區間列表。高階 如果有很多合併,並且與資料流的大小相比,不相交區間的數量很小,該怎麼辦?2 示例 假設資料流中的整數為 1,3,7,2,6,每次的總結為 1,1 1,1 3,3 1,1 3,3 7,7 ...

卷積中的資料流變化

參考這篇文章。可訓練引數列印 2.不可訓練引數學習。不可訓練引數也受每層的trainable引數影響 3.並不是所有引數都可以訓練,batchnormalization裡的均值和方差不可以訓練。gamma weights,beta weights,moving mean,moving varianc...

將資料變為json

如果二級標記 k 值包含存在問題的字元,則應忽略 如果二級標記 k 值以 addr 開頭,則應新增到字典 address 中 如果二級標記 k 值不是以 addr 開頭,但是包含 你可以按照自己認為最合適的方式進行處理。例如,你可以將其拆分為二級字典,例如包含 addr 或者轉換 以建立有效的鍵。如...