哔哩哔哩前端笔试前两道编程题代码

第一题:台阶走法,可以走1阶或2阶,n阶有多少种走法(斐波那契数列,这里用了非递归的写法)

var len = readline()
var arr = [0, 1, 2, 3],
    i = 4;
while&nbsp;(i&nbsp;<=&nbsp;n)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;arr[i]&nbsp;=&nbsp;arr[i&nbsp;-&nbsp;1]&nbsp;+&nbsp;arr[i&nbsp;-&nbsp;2];
&nbsp;&nbsp;&nbsp;&nbsp;i++;
}
console.log(arr[n]);
扩展:还有个可以走1阶,2阶,,,n阶,走n阶有多少种走法(共有2^(n-1)中走法)

第二题:找出有序数组(已排序)中和为sum的两个数,复杂度为o(n)

思路:从两端遍历,i=0,j=len-1,如果和小于sum,i++;如果等于记录两个值;如果大于sum,j--;遍历完有两个值的话,输出,没有输出&lsquo;notfound&rsquo;(不是&lsquo;not&nbsp;found&rsquo;哟,没有空格)

var&nbsp;len&nbsp;=&nbsp;readline();
var&nbsp;arr&nbsp;=&nbsp;readline().split('&nbsp;');
var&nbsp;sum&nbsp;=&nbsp;readline();
var&nbsp;i&nbsp;=&nbsp;0,
&nbsp;&nbsp;&nbsp;&nbsp;j&nbsp;=&nbsp;len&nbsp;-&nbsp;1,
&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;0,
&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;=&nbsp;0;
while&nbsp;(i&nbsp;<&nbsp;j)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tmp&nbsp;=&nbsp;parseInt(arr[i])&nbsp;+&nbsp;parseInt(arr[j]);
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(tmp&nbsp;==&nbsp;sum)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;arr[i];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;=&nbsp;arr[j];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(tmp&nbsp;>&nbsp;sum)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;j--;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(tmp&nbsp;<&nbsp;sum)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;
&nbsp;&nbsp;&nbsp;&nbsp;}
}
if&nbsp;(a&nbsp;&&&nbsp;b)&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;console.log(a&nbsp;+&nbsp;'&nbsp;'&nbsp;+&nbsp;b);
}&nbsp;else&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;console.log('notfound');
}
全部评论

相关推荐

码农索隆:想看offer细节
点赞 评论 收藏
分享
06-12 10:50
门头沟学院 Java
你的不定积分没加C:我怎么在学院群看到了同样的话
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务