数据结构与算法(java)第一章 算法简介和例题简介
一. 经典算法面试题
字符串匹配问题:
1) 有一个字符串str1 = “硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅谷你好”,和一个子串str2=“尚硅谷你尚硅谷”
2)现在要判断str1是否含有str2,如果存在,就返回第一次出现的位置,如果没有,则返回-1.
3)要求用最快的速度完成匹配
4)你的思路是什么。
解法:暴力匹配(不推荐)、KMP算法(推荐)
八皇后问题:
在8*8的国际象棋棋盘上摆放8个皇后,使其不能相互攻击,任意两个皇后不能处在同一行或同一斜线上,问有多少种摆法(92)
解法:分治算法
马踏棋盘算法:
解法:图形的深度遍历算法+贪心算法优化