輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。
簡單粗暴的用另乙個鍊錶儲存輸入鍊錶的逆序,然後返回逆序的第k個結點。
public
class listnode
listnode(int val)
} public
static listnode findkthtotail(listnode head, int k)
if (k <= 0 || result.size() < k) return
null;
else
}
使用兩個指標,head,fast,先把fast的指標指向第k個元素,
然後head和fast同時向後遍歷,當fast遍歷到結尾時,
head正好遍歷到倒數第k個。
public static listnode findkthtotailii(listnode head, int k)
while (head.next != null && fast.next!=null)
return head;
}
劍指offer14 整數拆分
題目描述 給定乙個正整數 n,將其拆分為至少兩個正整數的和,並使這些整數的乘積最大化。返回你可以獲得的最大乘積。例子 輸入 2 輸出 1 解釋 2 1 1,1 1 1。思路1 暴力遞迴 class solution int process int n int max 0 for int i 2 i ...
劍指offer 14 剪繩子
分析 本題可以用動態規劃,也可以用貪心法。動態規劃 設f n 表示當繩子長n時可以得到的最大乘積,那麼假設在i處切一刀,就會得到數學式子f n max f i f n i 02等於4,但是當n大於等於5時,我們就要拆成盡可能多的3和剩下的2。如果要證明,我們可以證明當n大於5時,有3 n 3 2 n...
劍指offer 14 剪繩子
這種文章網上很多,沒什麼營養,我只是自己記錄一下。雖然現在不找工作了,但以後演算法能力肯定需要加強,想著能不能每天堅持一道題,其實真做起來還有點難 劍指offer以前都是邊看答案邊記下來,現在能不能靠自己寫出來呢。時間複雜度為o n2 空間複雜度為o n 有一點要注意,m不是乙個給定的引數。思路是,...