今天的每日一題主要考驗了鍊錶的操作和插入排序,綜合來說還是簡單的,記錄一下!!
題目描述:
**實現如:
public listnode insertionsortlist(listnode head)
listnode headpoint=new listnode(-1);
headpoint.next=head;
listnode lastsorted=head,curr=head.next;
while (curr!=null)else
lastsorted.next=curr.next;
curr.next=prev.next;
prev.next=curr;
}curr=lastsorted.next;
}return headpoint.next;
}
思路:
1.應為這個題目的鍊錶是單向的,所以可以設定乙個頭結點指向鍊錶,這樣更便於操作
2.手繪了幾個步驟,大致如下:
鍊錶[4,3,2,1]
}
letcode每日一題 不同路徑
話不多說,我們上題目 方法一 動態規劃 我們用 f i,j 表示從左上角走到 i,j 的路徑數量,其中 i 和 j 的範圍分別是 0,m 和 0,n 由於我們每一步只能從向下或者向右移動一步,因此要想走到 i,j 如果向下走一步,那麼會從 i 1,j 走過來 如果向右走一步,那麼會從 i,j 1 走...
letcode每日一題 最大間距
今日每日一題,最大間距,一看難度困難,我想ctrl c再ctrl v,但是再一看題,嗯,我好想可以 我的 這道題的難點在於如何用線性的時空複雜度來解決。直接sort然後遍歷陣列當然可以解決問題,但是面試的時候這 種解法肯定是不能讓面試官滿意的。實現 如下 public int maximumgap ...
每日一題 反轉鍊錶
這道是牛客的題,給了鍊錶然後返回鍊錶的新表頭。拿到這道題首先肯定想到的是暴力求解,從表頭開始遍歷到尾,用尾元素作為新錶的表頭,然後遍歷尾元素的上乙個元素,鏈到新錶的最後然後不斷重複直到鍊錶的表頭鏈到新錶的尾巴 這樣有乙個很大的問題就是複雜度太高了,時間複雜度是o n n 這個時候我想到了肯定有簡單的...