【Javascript】 字符串替换算法 / 查找数组中枢
2013-10-19 02:31 杨泽川 阅读(446) 评论(0) 编辑 收藏 举报
思考之前先来杯coffee
--------------------------------------------------------------------------------
面试题:
一、字符串替换算法
一个字符串str="abcabcabc";
要查询的字符串src="ab";
替换的字符串tar="xyz";
思路:
新建一个字符串result
在str中分别对src的每一位进行匹配:
1>若全匹配,则添加到result中
2>若不全匹配,则对str后移一位进行匹配查询
返回result
返回:"aabxyzDcabDacxyzDabaxyz"
二、查找数组中枢
给定一个数组:arr=[1,2,4,5,7,19,20,30,24,21,3];
它有如下规律:先增后减,找出它的临界点(即最大值),如例子中的30,要求不要用暴力算法。
思路:
用二分法:
临界点的特征是:自身和左边的差值为正((a[n]-a[n-1])>0),和右边的差值为负((a[n+1]-a[n])<0)。
若这两个差值极性相反,则当前指向为所求,若极性相同:
1>当自身和左边的差值为正((a[n]-a[n-1])>0),所求的临界点在右边。
2>当自身和右边的差值为负((a[n+1]-a[n])<0),所求的临界点在左边。
注意Javascript中,类似9/2 的分子式,结果为4.5,不是4。所以要利用Math.floor()
返回:29。