457 環形陣列迴圈

2021-09-19 16:04:35 字數 960 閱讀 2776

給定乙個含有正整數和負整數的環形陣列nums。 如果某個索引中的數 k 為正數,則向前移動 k 個索引。相反,如果是負數 (-k),則向後移動 k 個索引。因為陣列是環形的,所以可以假設最後乙個元素的下乙個元素是第乙個元素,而第乙個元素的前乙個元素是最後乙個元素。

確定nums中是否存在迴圈(或週期)。迴圈必須在相同的索引處開始和結束並且迴圈長度 > 1。此外,乙個迴圈中的所有運動都必須沿著同一方向進行。換句話說,乙個迴圈中不能同時包括向前的運動和向後的運動。

示例 1:

輸入:[2,-1,1,2,2]

輸出:true

解釋:存在迴圈,按索引 0 -> 2 -> 3 -> 0 。迴圈長度為 3 。

示例 2:

輸入:[-1,2]

輸出:false

解釋:按索引 1 -> 1 -> 1 ... 的運動無法構成迴圈,因為迴圈的長度為 1 。根據定義,迴圈的長度必須大於 1 。

示例 3:

輸入:[-2,1,-1,-2,-2]

輸出:false

解釋:按索引 1 -> 2 -> 1 -> ... 的運動無法構成迴圈,因為按索引 1 -> 2 的運動是向前的運動,而按索引 2 -> 1 的運動是向後的運動。乙個迴圈中的所有運動都必須沿著同一方向進行。

-1000 ≤ nums[i] ≤ 1000

nums[i] ≠ 0

1 ≤ nums.length ≤ 5000

高階:

你能寫出時間時間複雜度為o(n)和額外空間複雜度為o(1)的演算法嗎?

457 環形陣列迴圈

給定一組含有正整數和負整數的陣列。如果某個索引中的 n 是正數的,則向前移動 n 個索引。相反,如果是負數 n 則向後移動 n 個索引。假設陣列首尾相接。判斷陣列中是否有環。環中至少包含 2 個元素。環中的元素一律 向前 或者一律 向後 你能寫出時間複雜度為 o n 且空間複雜度為 o 1 的演算法...

Leetcode 457 環形陣列迴圈

給定一組含有正整數和負整數的陣列。如果某個索引中的 n 是正數的,則向前移動 n 個索引。相反,如果是負數 n 則向後移動 n 個索引。假設陣列首尾相接。判斷陣列中是否有環。環中至少包含 2 個元素。環中的元素一律 向前 或者一律 向後 示例 1 給定陣列 2,1,1,2,2 有乙個迴圈,從索引 0...

Leetcode 457 環形陣列迴圈 C

給定乙個含有正整數和負整數的環形陣列 nums。如果某個索引中的數 k 為正數,則向前移動 k 個索引。相反,如果是負數 k 則向後移動 k 個索引。因為陣列是環形的,所以可以假設最後乙個元素的下乙個元素是第乙個元素,而第乙個元素的前乙個元素是最後乙個元素。確定 nums 中是否存在迴圈 或週期 迴...