深度之眼講解筆記 雙指標

2021-10-02 17:45:15 字數 2476 閱讀 1959

雙指標分為兩種:對撞指標 & 快慢指標

常用陣列中

leetcode 167題目

經典題目: two sum

時間複雜度:o(n^2)

缺點:沒有應用陣列本身特點性質

時間複雜度:o(nlogn)

二分搜尋時間複雜度是o(logn)

i 從0-n遍歷 o(n)

j 從i-n遍歷用 二分搜尋法 o(logn)

陣列nums有序的

左指標 i 右指標 j

判斷nums[i] + nums[j] == target

如果小於,則 i + 1 ,i右移再判斷

如果大於,則 j + 1, j左移再判斷

直到 i 跟 j 相撞

class

solution

:def

twosum

(self, numbers: list[

int]

, target:

int)

-> list[

int]

:# 時間複雜度o(n)

# 空間複雜的o(1)

leetcode 142題目

set集合,增加條件空間複雜度為1,怎該方法不能使用

步驟:定義fast指標和slow指標,fast一次二步,slow一次一步

第一步fast->2, slow->3, fast->1,slow->2, fast->8, slow->7,fast->4,slow->1, fast->6,slow->6相遇!!!

定義乙個指標p從最開始按照一次一步移動,和slow的頻率一樣,p和slow相遇的節點就是環的入口點。

證明:a = 從開始位置到入環口步數

b = 一環的步數

fast = 2 * slow

fast = slow + nb

slow = nb

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = x

# self.next = none

class

solution

:def

detectcycle

(self, head: listnode)

-> listnode:

fast, slow = head, head

while fast !=

none

: fast = fast.

next

if fast ==

none

:break

fast = fast.

next

# fast 兩步

slow = slow.

next

# slow 一步

if slow == fast:

break

if fast ==

none

:return

none

p1, p2 = slow, head

while p1 != p2:

p1 = p1.

next

p2 = p2.

next

return p1

Pytorch學習筆記(深度之眼)(4)之模型容器

1 展開,形狀變換 x self.classifier x return x 在 init 模組中,採用sequential 對卷積層和池化層進行包裝,把sequential類屬性賦予feature,然後對三個全連線層進行sequential包裝,賦值為classifier類屬性,這就完成了模型構建...

深度之眼 吳恩達深度學習 打卡學習

理解訓練 驗證 測試集 偏差 方差 正則化以及梯度消失 梯度 梯度檢驗等基本的概念。需重點掌握為什麼正則化可以減少過擬合,以及對梯度消失和梯度 產生的原因和解決的方法。訓練 驗證 測試集,資料量在百萬級以下,可以60 20 20,百萬級,98 1 1就可以了。偏差 方差,偏差vias,方差varia...

Linux下的C語言筆記之指標講解

2.指標的值也叫指標所指向的記憶體區域位址。指標的值是指標本身儲存的數值,這個值被編譯器當做乙個位址,而不是乙個一般的數值。指標本身所佔的記憶體區域是4個位元組長度。3.間接引用指標,對於已說明的變數來說,變數名就是對變數值的間接引用。對於指向變數或記憶體中的任何物件指標來說,指標就是對物件值得間接...