Time of Update: 2018-12-05
在寫冒泡的時候遇到了一個問題,就是值傳遞問題,我寫的是swap函數,本來只傳兩個數值是不可以的例如swap(int a,int b)這樣只是單純的值傳遞,並不能起到交換兩個數值的作用,所以要直接對數組進行操作才是王道。想起C++中其實是按指標給值,直接修改堆裡的值,而java裡沒有指標,所以要將“引用”傳進來,我不知道用引用合不合適,但是這個引用和C++中的引用是有很大區別的,我覺得反而有點類似於指標。public class BubbleSort {public static void
Time of Update: 2018-12-05
HH神的線段樹出神入化,所以跟著HH學習線段樹。風格:maxn是題目給的最大區間,而節點數要開4倍,確切的說……lson和rson辨別表示結點的左孩子和右孩子。PushUp(int rt)是把當前結點的資訊更新到父節點PushDown(int rt)是把當前結點的資訊更新給孩子結點。rt表示當前子樹的根(root),也就是當前所在的結點。思想:對於每個非分葉節點所標示的結點
Time of Update: 2018-12-05
Time of Update: 2018-12-05
1001. http://acm.hdu.edu.cn/showproblem.php?pid=4370神一樣的題目,用圖論的思想建模,建立1~n一共n各點。X12+X13+...X1n=12.X1n+X2n+...Xn-1n=1理解為點1的出度為1,n點的入度為1;將矩陣理解為邊上的權值,那麼可以理解為:1.
Time of Update: 2018-12-05
希爾排序的主題思想其實就是分治,各個小模組之間執行插入排序,寫起來也很簡單,我以兩種插入排序做了希爾排序,只是多了一個分治的for迴圈public class ShellSort { public static void shellsort(int[] nums){ for(int increase=(nums.length/2);increase>0;increase/=2){ for(int i=increase;i<nums.length;i++){ int
Time of Update: 2018-12-05
http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1349題意:將1, 2, 3, 4,
Time of Update: 2018-12-05
A題:暴力題目資料量很小,所以可以用暴力。1題的分數的取值可能是a, a - da, a - da * 2, a - da * 3,……, a - da * (n - 1);或者02題的分數的取值可能是b, b - db, b - db * 2, b - db * 3, ……, b - db * (n - 1);或者0然後暴力。複雜度:O
Time of Update: 2018-12-05
有一根27厘米的細木杆,在第3厘米、7厘米、11厘米、17厘米、23厘米這五個位置上各有一隻螞蟻。 木杆很細,不能同時通過一隻螞蟻。開始 時,螞蟻的頭朝左還是朝右是任意的,它們只會朝前走或調頭, 但不會後退。當任意兩隻螞蟻碰頭時,兩隻螞蟻會同時調頭朝反方向走。假設螞蟻們每秒鐘可以走一厘米的距離。 編寫程式,求所有螞蟻都離開木杆 的最小時間和最大時間。
Time of Update: 2018-12-05
快速排序是將要排序的集合A,進行分塊排序。一般步驟為:1.如果A中的元素個數是0或1,則返回。2.A中的任意元素為pivot(中心元素【個人理解】)3.將A按照中心元素劃分為兩部分A1和A2 4.對A1和A2分別進行如上操作。其實是一個遞迴的過程。如何選取中心元素會影響到快速排序的速度,本次演算法採用最普遍的將數組中的第一個元素作為pivotpublic class QuickSort { public static int pivot(int[] nums,int first,int
Time of Update: 2018-12-05
這是學習bingshangjiguang大神的演算法,記錄如下。RMQ問題:Range Minimum/Maximum Query問題,給定一個區間,求這個區間的最大值或最小值,需要採用動態規劃的思想。舉例:以求最小值為例:f(i, j)表示[i,i+2^j-1]區間中的最小值。i表示起點,j近似表示區間的長度。例如:f(0,0)就表示[0,0]之間的最小值,f(0,2)表示[0,2]之間的最小值,f(2,17)表示[2,2+2^17-1]之間的最小值。性質:1.f(i, j) = min(
Time of Update: 2018-12-05
百度公司面試題,要求空間複雜度最小,希望各位有更好地解答......................../*** 要求:將一個英文句子反轉* 但不能使用String的庫函數:split,indexOf,lastIndexOf,subString且要求空間複雜度最小* * */public class Reverse { public static void main(String[] args){ String str ="who am I";
Time of Update: 2018-12-05
題目中讓求滿足Yi + Yj <= L 的子序列(L變成double型),那麼如果Yi <= L / 2, 那麼一定可以加入,如果Yi > L /
Time of Update: 2018-12-05
今天看了很多排序問題,準備一天搞定一個,今天是插入排序public class InsertionSort {public static void InsertSort(int[] num){ for(int i=1; i<num.length; i++) { for(int j=i; j>0; j--) { if(num[j]<num[j-1]){ int temp=num[j];
Time of Update: 2018-12-05
E題---DPhttp://codeforces.com/contest/201/problem/C首先假設i, j是滿足i <= j的起點和終點,(如果i > j,那麼交換i和j),那麼一定有:0 ~ i:取偶數,因為有來有回,left_even[i],可能又斷點,例如 點 3 點 1 點 2 點5那麼如果i是第三個點的話,那麼不能過為1的線段,所以左邊的3就毫無意義了。i ~ j :取奇數,因為是從i到j的,sum_odd[i] -
Time of Update: 2018-12-05
A題:貪心,尋找滿足比旁邊多至少2個高度的點,然後下降一個高度點,直到一共下降了k點。code:/*�ջ�*/#include<iostream>#include<cstdlib>#include<vector>#include<map>#include<cstring>#include<set>#include<string>#include<algorithm>#include<sstrea
Time of Update: 2018-12-05
1:TCP掃描相對來說是速度比較慢的一種,為什麼會慢呢?因為這種方法在掃描的時候會從本地主機的一個連接埠向目標主機的一個連接埠發出一個串連請求報文段,而目標主機在收到這個這個請求報文後若同意的話則發回一個確認報文段,那麼我們本地主機收到確認報文段之後就可以確認目標主機的該連接埠是活動的了.因為如果目標主機的該連接埠是死連接埠的話,目標主機不會發回確認報文.(這裡還有一個問題,就是如果該連接埠是死連接埠的話,那目標主機能收到我們的串連請求嗎?我自己感覺應該是收不到的...誰要知道了一定要告訴我啊)
Time of Update: 2018-12-05
這是看同學部落格總結的:f(n!) = 0;f(n!) = k + f(k!); n >=5; k = n/5 (取下整)原因:首先是對於10進位來所,0的個數取決於5的個數(因為10 = 2 *5,而且5的個數一定比2的個數要少)。證明:令n = 5 * k + r(0 <= r <= 4)那麼:n! = [5k * 5(k - 1) * ……*10 * 5]* a;近似可以認為是:1, 2, 3 ,4, 5,1,2,3, 4, 5, 1, 2, 3, 4, 5;1
Time of Update: 2018-12-05
體繫結構——中斷屏蔽的學習前言:學習體繫結構的時候,有兩個地方一直搞不懂,一個是浮點數處理,另外一個是屏蔽中斷,浮點數處理至今不懂,屏蔽中斷略有所悟,在此總結一下。屏蔽碼:1和0屏蔽還是中斷各有所異,根據題意得到。中斷執行個體:一、 所有的中斷同時到達:1. 書中執行個體:1) 中斷響應優先順序:D1 > D2 > D3 > D4 2) 中斷處理優先順序:D1 > D2 > D3 > D43) 中斷響應和處理過程:4)
Time of Update: 2018-12-05
250 題:在一個矩陣中取出一個點,求不包含那個點的權值最大的矩陣。直接枚舉四種情況。/*收穫:*/#include<iostream>#include<cstdlib>#include<vector>#include<map>#include<cstring>#include<set>#include<string>#include<algorithm>#include<sstream>
Time of Update: 2018-12-05
現在寫這個程式,不能將有效資訊摘出來,以後摘出來會補上package test3;import java.io.IOException;import org.apache.commons.httpclient.*;import org.apache.commons.httpclient.methods.*;/** * 用HttpClient通過網頁的回複獲得號碼的歸屬地 * 最好的方式是寫一個Regex把回來的資訊摘出來 * 正在努力寫,以後寫出補上 * @author wangyj