發表文章

LeetCode OJ: 34. Search for a Range

題目連結 ,解法為從陣列左右兩邊各用Binary Search找一次。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 public class Solution { public int [] searchRange ( int [] nums, int target) { int n = nums. length ; int left = 0 , right = n - 1 ; int [] result = new int [] { - 1 , - 1 }; // The left boundary while (left < right) { int mid = (left + right) / 2 ; if (nums[mid] < target) left = mid + 1 ; else right = mid; } if (nums[left] != target) return result; else result[ 0 ] = left; // The right boundary right = n- 1 ; while (left < right) { int mid = (left + right) / 2 + 1 ; if (nums[mid] > target) right = mid - 1 ; else left = mid; } result[ 1 ] = right; return result; } } 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。...

LeetCode OJ: 278. First Bad Version

題目連結 ,此題可用Binary Search的方式解,需要注意的細節為:要小心Overflow(第8行)與偏移量(第13行)。 如果第8行寫成  midVer = (curVer + preVer) / 2 ; 就有可能會Overflow,筆者卡在此處許久。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public class Solution extends VersionControl { public int firstBadVersion ( int n) { int preVer = 1 ; int curVer = n; int midVer; while (preVer < curVer) { midVer = preVer + (curVer - preVer) / 2 ; if ( isBadVersion(midVer) ) curVer = midVer; else preVer = midVer + 1 ; } return preVer; } } 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

LeetCode OJ: 50. Pow(x, n) 冪

題目連結 ,此題在 Wiki 上有個解法: double power ( double a , unsigned int n ) { double y = 1 ; double f = a ; unsigned int k = n ; while ( k != 0 ) { if ( k % 2 == 1 ) y *= f ; k >>= 1 ; f *= f ; } return y ; } 但,它是不會通過的,因為尚需考慮 n 為負數時的情況: public class Solution { public double myPow ( double x, int n) { if ( n < 0 ) return 1 /x * myPow( 1 /x, -(n+ 1 )); if ( n == 0 ) return 1 ; if ( n == 2 ) return x*x; if ( n % 2 == 0 ) return myPow ( myPow(x, n/ 2 ), 2 ); else return x*myPow( myPow(x, n/ 2 ), 2 ); } } 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

LeetCode OJ: 69. Sqrt(x) 平方根

題目連結 ,此題當然可以用程式語言內建的數學函式sqrt解題,只不過這樣子就沒意思啦,在 Wiki 上可查到很多數學解法,其中 牛頓法 是個不錯的選擇,不過改完的結果比較像Binary Search耶。 public class Solution { public int mySqrt ( int x) { if (x == 0 ) return 0 ; int left = 1 , right = Integer. MAX_VALUE ; while ( true ) { int mid = left + (right - left)/ 2 ; if (mid > x/mid) { right = mid - 1 ; } else { if (mid + 1 > x/(mid + 1 )) return mid; left = mid + 1 ; } } } } 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

LeetCode OJ: 118. 119. Pascal's Triangle 巴斯卡三角形

圖片
在LeetCode上有兩題 Pascal's Triangle 、 Pascal's Triangle II ,筆者的分析如下: 目標是要產生如下的數列: [] [1] [1 1] [1 2 1] [1 3 3 1] [1 4 6 4 1] [1 5 10 5 1] 以上還可再細分成下: [] [ 1 ] [1] [ 1 1] [1 1] [ 1 1 1 ] [1 2 1] [ 1 1 2 1 ] [1 3 3 1] [ 1 1 3 3 1 ] [1 4 6 4 1] [ 1 1 4 6 4 1 ] [1 5 10 10 5 1] Wiki 上有個動畫 : 於是程式可寫成如下: public class Solution { public List<List<Integer>> generate ( int numRows) { List<List<Integer>> pascal = new ArrayList<List<Integer>>(); ArrayList<Integer> row = new ArrayList<Integer>(); for ( int i = 0 ; i < numRows; i++) { row. add ( 0 , 1 ); for ( int j = 1 ; j < row. size () - 1 ; j++) row. set (j, row. get (j) + row. get (j + 1 )); pascal. add ( new ArrayList<Integer>(row)); } return pascal; } } 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

Perl 教學投影片 ( Perl Tutorial for Bioinformatics )

Perl For Bioinformatics from PingLun Liao 範例下載處: http://www.4shared.com/archive/c4w7kBEkba/PerlExamples.html 若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

讀書筆記:執行力

「少了執行力,突破性思考沒有用,學習不會帶來價值,員工無法達成延展性目標,革命也會半途而廢。」 「如果不知道如何執行,領導人的努力註定會事倍功半」 「未先衡量組織的執行能力,就不可能規劃出像樣的策略。」 「千萬別把執行和戰術混為一談。」 「執行是一套系統化流程,嚴謹地探討『如何』與『是什麼』、提出質疑、不厭其煩地追蹤進度、確保權責分明。」 「唯有當領導人的心思和靈魂和公司融為一體時,這家公司才會具有執行力。」 「領導人要做好執行的工作,必須管理三項核心流程:挑選各級主管、設定策略方向、主導營運。」 「親自領導執行的工作必分事必躬親,或是專斷獨裁,不肯授權,而是一種主動的投入,進行領導人員來就該做的事。」 「執行必須成為組織文化的一部分,驅策各層級所有主管的行為。」 「一般人以為光靠聰明才智就可以有很好的成就,這種想法其實只對了一半。」 「諾貝爾得主的成功,是由於他們能精確執行某項證明的所有細節,並讓他人可重作、驗證或應用此項證明。」 「在執行的過程中,一切都會變得明確起來,你會更清楚看見企業的全貌。執行也是因應變化或轉型的最好方法,比企業文化或經營哲學都管用。」 「每當公司未能達到預定目標,最常見的解釋就是執行長得策略出了差錯。然而,策略失敗的原因大都是執行不力,而不在於策略本身。」 「承諾與成果之間的鴻溝清楚可見,但是,有一道鴻溝卻尚無人察覺,那就是『公司領導人所期望達成的目標』與『組織達成目標的能力』之間的落差。」 「實事求是乃是執行的核心所在。」 「一個領導人若是說:『我列了十項重點。』表示他根本不進入狀況。」 「有時候企業必須由新的角度來釐清優先順序。」 「即使有了簡單明確的目標,如果沒有人把他當成回事也不管用。」 「缺乏執行力的公司,許多都是因為不會評鑑員工,不懂得論功行賞,也不提拔有工作績效的優秀人才。」 「傳授經驗的技巧首重發問的藝術。提出一針見血的問題,能迫使受教者去思考、反省與發現。」 執行的三項關鍵要點 : 1. 執行是一種紀律,是策略不可分割的一環。 執行是一套系統化流程,嚴謹地探討『如何』與『是什麼』、提出質疑、不厭其煩地追蹤進度、確保權責分明。 2. 執行是企業領導人首要的工作。 領導人必須對企業的營運、人員與環境有完整的了解:也唯有透過領導人親...