劍指offer每日一刷 2023年11月24日

2021-08-11 07:10:16 字數 691 閱讀 1505

題目:

鍊錶中倒數第k個接點

題目描述:

輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。

/**

* 鍊錶的定義

*/public class listnode

}

方法一:

建立兩個指標pre和last,先讓兩者均指向頭結點,然後讓pre指標走k-1步,指向第k個節點,這樣pre和last就相差k-1個結點,last就指向pre的倒數第k個結點。然後兩個指標同時向後移動,當指標pre達到末尾的時候,第二個指標所指向就是倒數第k個結點了。

//執行時間為21ms,占用記憶體空間在22m左右

public listnode findkthtotail(listnode head,int k)

//建立兩個指標均指向煉表頭結點

listnode pre=head,last=head;

//迴圈k-1次,讓指標pre移動k-1次,指向第k個結點

//這樣指標pre和last就相差k-1個結點,last就指向pre的倒數第k個結點

for(int i=1;i

方法二:較簡潔的方法

/** 方法二,較簡潔的方法

*/public listnode findkthtotail(listnode head,int k)

return i

劍指offer每日一刷 2023年11月20日

題目名稱 矩形覆蓋 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個2 1的小矩形無重疊地覆蓋乙個2 n的大矩形,總共有多少種方法?從題目描述可知,這也是一道斐波那契數列的題目 f n f n 1 f n 2 題目描述 我們可以用2 1的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個...

劍指offer一刷 查詢演算法

難度 簡單 class solution return 1 時間複雜度 o n 空間複雜度 o n 遍歷陣列並通過交換操作,使元素的索引與值一一對應 即 nums i i 遍歷中,第一次遇到數字 x 時,將其交換至索引 x 處 而當第二次遇到數字 x 時,一定有 nums x x,此時即可得到一組重...

每日一刷 劍指offer 一 二維陣列中的查詢

為提公升coding能力,開啟每日一刷,每天至少完成1道題目,並將自己的總結思考記錄於此。題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。嘗試解法 暴力...