第(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 輸...