劍指 圓圈中最後剩下的數字

2021-10-07 02:44:34 字數 766 閱讀 3421

1,題目:

2,思路:

方法一:用arraylist:(模擬鍊錶)

方法二:鍊錶:(其實和方法一是一樣的)

其實還有別的方法,但是自己沒有看懂,就沒有寫

3,**:

方法一:用arraylist:(模擬鍊錶)

class

solution

int idx =0;

while

(n >1)

return list.

get(0);}}

方法二:鍊錶:(其實和方法一是一樣的)

/*

將[0,n]依次儲存在鍊錶中

通過舉例可以得出第一次刪除的數字下標為(m-1)%n記為c,之後每一次刪除的數字下標均為(c+m-1)%list.size()

*/public

intlastremaining

(int n,

int m)

return list.

get(0)

;}

劍指offer 圓圈中最後剩下的數字

例如,0,1,2,3,4這五個數字組成的圓圈,每次從數字0開始刪除第3個元素,依次刪除的數為2,0,4,1,那麼剩下的為3。思路1 可以用stl模板庫裡面的list來模擬這個環形的鍊錶,因為list是線性的,所以為了實現環形的鏈,可以在遍歷到鏈的末尾的時候跳轉到鏈的開頭,這樣就相當於乙個環形鍊錶了,...

圓圈中最後剩下的數字(劍指offer)

題目 0,1,n 1這n個數字排成乙個圓圈,從數字0開始,每次從這個圓圈裡刪除第m個數字。求出這個圓圈裡剩下的最後乙個數字。例如,0 1 2 3 4這5個數字組成乙個圓圈,從數字0開始每次刪除第3個數字,則刪除的前4個數字依次是2 0 4 1,因此最後剩下的數字是3。思路 最直接的思路,我們模擬一下...

圓圈中最後剩下的數字

1.問題描述 題目0,1.n 1這n個數字排成乙個圓圈,從數字0開始每次從這個圓圈裡刪除第m個數字。求出這個圓圈裡剩下的最後乙個數字。來自 劍指offer 2.分析 1 用環形鍊錶模擬圓圈,然後掃瞄鍊錶刪除結點,如果掃瞄到了鍊錶結尾,重新在指向鍊錶開頭以此來模擬環形鍊錶。typedef struct...