日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一些算法题

發布時間:2024/9/30 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一些算法题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、給定一個N位數,例如12345,從里面去掉k個數字,得到一個N-k位的數,
?? 例如去掉2,4,得到135,去掉1,5,得到234。設計算法,求出所有得到的

?? N-k位數里面最小的那一個


從左到右掃描,并將數字放入vector,當遇到一個數比前面的數小的時候,刪除前面的數,并繼續和vector最后的一個元素比,如果還是比最后一個元素小,繼續刪除這最后一個數,直到比最后一個數大。然后,繼續向右掃描。直至刪到的數的位數為k


2.N個人中只有一個明星:明星不認識其他所有的人,而其他人都認識明星,不是明星的人可能認識也可能不認識。你每次只可以問一個人是否認識另一個人這樣的問題,問最少問多少次可以找出明星?

明星不認識所有其他人,但所有人都認識明顯,所以可以這樣:

從N個人中找兩個人a b,問a是否認識b,若a認識b則a肯定不是明星排除a,若a不認識b,則b肯定不是明星(用反證法)。

因此問一個問題我們便可以排除掉一個人(即若a認識b,則a不是明星;若a不認識b,則b不是明星),最多經過n-1次便可以找到明星。


昨天晚上又遇到一個類似的題目,一個圖,有一個點,是所有的點都指向這個點,而這個點不指向任何一個點,稱之為匯點,求匯點。

遍歷邊,對一條邊去掉發出邊的那點,最后就剩下匯點



1、兩個有序鏈表的合并。看過這個題,考慮下邊界問題,可以用O(n)時間,O(1)空間解
決。寫完后,說我代碼有個小bug,然后討論后改之。問這個算法在哪種條件下不work,
想了許久,突然靈光一現,想出可能鏈表有環或者兩個鏈表有可能有公共節點。他很開
心,說很久沒有人能同時想出兩個case了。

?

2、字符串A和字符串B。是否B包含了A所有的字符串,要考慮字符的個數問題,比如A:
aabb , B: abccc,就不滿足條件了。這個題目跟google當年的筆試題很像,開一個256的
int[]數組做hashtable,很容易解決了。由于之前沒有考慮上述的情況,他指出來了,
稍微改下,就過了

?

3、一個n*n迷宮,方塊里可能是墻,可能是路,問怎么走出出口,求最短路徑。先說思
路,然后寫偽代碼。很簡單的寬度優先,每個方格里記錄走的步數和來自于哪個方塊。
很快就解決了。

?

1)N個數,選出任意兩個數求和,問所有這些可能性的和是多少。我說最簡單的方法是
模擬,O(N^2),然后問有沒有更簡單的,想了想,計算了下所有數出現的個數是 (N-1
)/2,所以很簡單,就是?? sum*(N-1)/2,時間復雜度是O(N)

?

2)問試卷最后一個題。之前聽同學說過,我自己想過。A B兩個有序數組,A中選一個,
B中選一個,要求和為某個指定值m,問怎么選。感覺是《編程之美》上一維數組中求兩
個數和的變形,所以只要變換一下:A中的數從頭往尾走,B中數從尾往前走就好;但是
這么會遺漏,如果沒找到,用相同的方式,A中的數從尾往頭走,B中的數從頭往尾走,
看能否找到

?

3)問知道怎么確定有環鏈表。說知道。然后問,怎么確定環的起點節點。然后說沒見過
。他說,浙大的很奇怪,第一個問題都會,而第二個問題都不會。然后我開始想,最簡
單的用hash表保存已遍歷的節點。然后他說需要常數空間。想了很久大概15分鐘不會,
讓他提示下。說如果兩個鏈表有公共節點,問怎么去找這個公共節點,想了幾分鐘,想
出來了。只要都遍歷一下得到長度的信息,利用這個信息再遍歷一次,就可以找到公共
節點。

然后想到第有環的只是一個變種,只要把環斷開。就成了第一個問題。然后叫我寫代碼
,很順利的寫完。

?

4)已知兩個矩形的四個節點信息,然后給一個API——可以得到某個點在是否在某矩形
內,問怎么判斷矩形相交。答曰,矩形相交不需要這么復雜,只要判斷線段相交就行。
可能他之前沒想到我會這么回答,仔細解釋了下,他說可行。然后問有沒有特殊情況,
我說有,一個矩形在另一個矩形內,可能線段不相交,矩形也相交了。然后答曰,這個
只要判斷小矩陣的幾點是否在大矩陣內就可以了

?

5)問一個n*n的方塊內,有一條環形路徑。路徑上的點都是1,其他點都是0.。給路徑中
的任意一個點,問這個路徑所包含的面積。想了一分鐘,覺得粉兩步走:1)深度優先找
路徑 2)寬度優先算面積 然后解釋了下,說可行


心思縝密,反應快

這題可以用掃描線方法

http://blog.csdn.net/lyso1/article/details/5885582

總結

以上是生活随笔為你收集整理的一些算法题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。