java算法經典面試題

字符串匹配問題:

有兩個字符串

    str1=""bbc abcdab abcdabcd abde""

    str2="abcdabd"

現在要判斷str1是否含有str2,如果存在,就返回第一次出現的位置,如果沒有,則返回-1

要求用最快的速度來完成匹配,那麼你的思路是什麼?

KMP算法《部分匹配表》

 漢諾塔遊戲:

請完成漢諾塔遊戲代碼:

    要求:1.將A塔的所有圓盤移動到C塔

               2.小圓盤上不能放大圓盤

               3.在三根柱子之間一次只能挪動一個盤

使用 分治算法

八皇后問題:(八皇后問題是一個古老而著名的問題,是回溯算法的典型案例。)

 該問題是國際西洋棋棋手馬克斯·貝瑟爾於1848年提出:在8X8格的國際象棋上擺放八個皇后,使其不能相互攻擊(任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法)

使用 回溯算法

 馬踏棋盤(騎士周遊問題):

將馬隨機放在國際象棋的8X8棋盤,馬按走棋規則(馬走日字)進行移動。要求每個方格只進入一次,走遍棋盤全部64個方格

使用 圖的深度優化遍歷算法(DFS)+貪心算法優化

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章