leetcode經典程式設計題(9)

2021-07-27 16:40:32 字數 907 閱讀 7303

第(9)題 linked-list-cycle-ii

知識點:鍊錶

題述:given a linked list, return the node where the cycle begins. if there is no cycle, returnnull.

題意是在乙個鍊錶中找出乙個迴圈鍊錶,並找出迴圈的第乙個結點

思路:比較複雜,設定2個「指標」,乙個比另乙個的步長大一。兩個指標從頭結點開始向後遍歷,直到2個點重合,因為慢指標的步長為宜,所以當兩個指標指向同乙個結點時,必然存在乙個迴圈。

假設非迴圈部分的長度為a,相遇點距迴圈還是的長度為b,c,即迴圈長度為b+c。

根據快指標速度為慢指標速度的兩倍,可以得出:

2*(a + b) = a + b + n * (b + c);即

a=(n - 1) * b + n * c = (n - 1)(b + c) +c;

故可以推出,如將此時兩指標分別放在起始位置和相遇位置,並以相同速度前進,當乙個指標走完距離a時,另乙個指標恰好走出 繞環n-1圈加上c的距離。

故兩指標會在環開始位置相遇。

**如下:

/**

* definition for singly-linked list.

* class listnode

* }*/public

class

solution

listnode fast = head;

listnode slow = head;

while( fast.next != null && fast.next.next != null)

return slow;}}

return

null;

}}

陣列 程式設計題9

編寫程式,生成一種貫穿10 10字元陣列 初始時全為字元 的 隨機步法 程式必須隨機地從乙個元素 走到 另乙個元素,每次都上下 向左或向右移動乙個元素位置。已訪問過的元素按訪問順序用字母a到z進行標記。c 我寫的很菜 include include include include define n ...

入門經典程式設計題

編寫乙個靜態方法histogram 接收乙個整型陣列a和乙個整型m返回乙個大小為m的陣列 其中第i個元素的值為整數i在引數陣列 現的次數。如果a中的值均在到0到m 1之間,返回陣列中所有元素之和應該和a.length相等.讀題是真的費勁,整個例子吧 陣列a m 7,新陣列b 第0個元素的值為整數0在...

leetcode程式設計題

1 自除數 是指可以被它包含的每一位數除盡的數。例如,128 是乙個自除數,因為 128 1 0,128 2 0,128 8 0。還有,自除數不允許包含 0 給定上邊界和下邊界數字,輸出乙個列表,列表的元素是邊界 含邊界 內所有的自除數。示例 1 輸入 上邊界left 1,下邊界right 22 輸...