Twitter算法面試題詳解(Java實現)
posted @ 2013-11-03 18:03 銀河使者 閱讀(8629) | 評論 (4) 編輯
隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
|
algorithmTwitter算法面試題詳解(Java實現)
摘要: 最近在網上看到一道Twitter的算法面試題,網上已經有人給出了答案,不過可能有些人沒太看明白(我也未驗證是否正確),現在給出一個比較好理解的答案。 閱讀全文
posted @ 2013-11-03 18:03 銀河使者 閱讀(8629) | 評論 (4) 編輯 百度面試題:求絕對值最小的數
摘要: 有一個已經排序的數組(升序),數組中可能有正數、負數或0,求數組中元素的絕對值最小的數,要求,不能用順序比較的方法(復雜度需要小于O(n)),可以使用任何語言實現
例如,數組{-20,-13,-4, 6, 77,200} ,絕對值最小的是-4。 閱讀全文 posted @ 2013-01-30 11:45 銀河使者 閱讀(12128) | 評論 (10) 編輯 不使用中間變量交換兩個數(Java版)
摘要: 在程序中實現交換兩個數的功能并不復雜,但如果不使用中間變量,就需要動一下腦筋。在本文介紹了兩個方法(其實原理都是一個)。其基本原理就是數的中和。也就是說,通過某種運算(二元運算)將a和b兩個數變成一個數,并保存在其中一個變量中。然后再通過同樣的運算符將a或b中和掉。這樣實際上是利用了a或 b本身作為了中間變量。 閱讀全文
posted @ 2010-07-28 10:29 銀河使者 閱讀(2800) | 評論 (8) 編輯 有道難題2009復賽題解答(Java版):求大于給定數的最小不重復數
摘要: 最近看了有道出的幾個復賽題,覺得很好玩,現給出Java版的答案。先看看提干部分。如果一個數字十進制表達時,不存在連續(xù)兩位數字相等,則稱之為“不重復數”。例如,105,1234和12121都是“不重復數”,而11,100和 1225不算。給定一個long類型數字A,返回大于A的最小“不重復數”。 閱讀全文
posted @ 2010-05-11 16:23 銀河使者 閱讀(3590) | 評論 (21) 編輯 生成n*n蛇形矩陣的算法
摘要: 在描述算法之前,先看看下面的5*5的表格:
1 3 4 10 11 2 5 9 12 19 6 8 13 18 20 7 14 17 21 24 15 16 22 23 25 上面的表格很容易看出規(guī)律。就是從左上角第一個格開始(起始為1),然后延右上角到左下角的斜線。先從下到上,再從上到下。開始按數字遞增排列。也就是說每一個斜線上分別有如下幾組數字: 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 閱讀全文 posted @ 2009-07-24 11:04 銀河使者 閱讀(8696) | 評論 (7) 編輯 Base64編碼原理與實現
摘要: 本文介紹了Base64編碼的基本原理,并給出了一個簡單的Base64編碼的實現 閱讀全文
posted @ 2009-05-29 19:20 銀河使者 閱讀(4778) | 評論 (0) 編輯 09考研數據結構試題的一種解法(Java版)
摘要: 雖然研究生已畢業(yè),但看到有一些難度的研究生考試題還是忍不住要做做,本文給出了09年研究生入學考試的一道數據結構題的Java實現。本文給出的算法的空間復雜度為O(1),時間復雜度為O(n)。 閱讀全文
posted @ 2009-01-17 20:50 銀河使者 閱讀(3493) | 評論 (7) 編輯 選擇排序(selection sort)算法實現
摘要: 從字面上理解,就是通過不斷地選擇數組元素,從而達到排序的目的。我插入排序類似,假設第i(i
posted @ 2008-05-16 13:21 銀河使者 閱讀(1569) | 評論 (0) 編輯 希爾排序(shellsort)算法實現
摘要: 希爾排序(shellsort)又叫增量遞減(diminishing increment)排序,是由D.L. Shell發(fā)明的,這個算法是通過一個逐漸減小的增量使一個數組逐漸趨近于有序從而達到排序的目的。 閱讀全文
posted @ 2008-05-15 22:01 銀河使者 閱讀(2398) | 評論 (1) 編輯 快速排序(quicksort)算法實現
摘要: 快速排序(quicksort)是分治法的典型例子,它的主要思想是將一個待排序的數組以數組的某一個元素X為軸,使這個軸的左側元素都比X大,而右側元素都比X小(從大到小排序)。然后以這個X在變換后數組的位置i分為左右兩個子數組,再分別進行快速排序,直到子數組中只有一個元素為止。
閱讀全文 posted @ 2008-05-14 20:14 銀河使者 閱讀(6586) | 評論 (1) 編輯 得到第K個大的數算法研究
摘要: 第一種算法是最容易想到的,就是利用快速排序的思想,將一個數組分成以某一個數X為軸,左邊的所有的數都比X小,而右邊的數都比X大。但我快速排序不同的是,在這個算法中只考慮X的一邊,而不是兩邊都考慮。 閱讀全文
posted @ 2008-05-12 20:55 銀河使者 閱讀(2046) | 評論 (0) 編輯 棋盤覆蓋問題的算法實現
摘要: 在一個2^k * 2^k個方格組成的棋盤中,有一個方格與其它的不同,若使用以下四種L型骨牌覆蓋除這個特殊方格的其它方格,如何覆蓋。 閱讀全文
posted @ 2008-05-11 22:29 銀河使者 閱讀(4133) | 評論 (1) 編輯 全排列算法原理和實現
摘要: 全排列是將一組數按一定順序進行排列,如果這組數有n個,那么全排列數為n!個。現以{1, 2, 3, 4, 5}為
例說明如何編寫全排列的遞歸算法。 閱讀全文 posted @ 2008-05-11 15:43 銀河使者 閱讀(7870) | 評論 (11) 編輯 整數劃分算法原理與實現
摘要: 整數劃分問題是將一個正整數n拆成一組數連加并等于n的形式,且這組數中的最大加數不大于n。 閱讀全文
posted @ 2008-05-11 15:41 銀河使者 閱讀(2036) | 評論 (0) 編輯 |
|