Leetcode 457 環形陣列迴圈

2021-09-24 14:50:05 字數 830 閱讀 9918

給定一組含有正整數和負整數的陣列。如果某個索引中的 n 是正數的,則向前移動 n 個索引。相反,如果是負數(-n),則向後移動 n 個索引。

假設陣列首尾相接。判斷陣列中是否有環。環中至少包含 2 個元素。環中的元素一律"向前"或者一律"向後"。

示例 1:給定陣列 [2, -1, 1, 2, 2], 有乙個迴圈,從索引 0 -> 2 -> 3 -> 0。

示例 2:給定陣列[-1, 2], 沒有迴圈。

注意:給定陣列保證不包含元素"0"。

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

就是乙個迴圈的判斷,這道題可以使用雙指標來判斷,要注意的是雙指標的移動要注意保持方向一致

所以在while的地方我們要求當前的和fast和fast的方向是一致的

1

class

solution

11return

true;12

}13 j =getnextindex(nums, j);

14 k =getnextindex(nums, getnextindex(nums, k));15}

16}17return

retboolean;18}

1920

private

static

int getnextindex(int nums, int

i) 25 }

Leetcode 457 環形陣列迴圈 C

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

457 環形陣列迴圈

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

457 環形陣列迴圈

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