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

第一题:台阶走法,可以走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');
}
全部评论

相关推荐

03-14 16:04
已编辑
安徽农业大学 算法工程师
痴心的她allin秋...:啥笔试都挂怎么办,某9本考研下岸,练也没时间了,对算法也不感兴趣,大部分大厂笔试只能A0-1个😄
米哈游笔试
点赞 评论 收藏
分享
03-04 22:09
已编辑
南昌大学 golang
西北上单:29届? 请你去三角洲猛攻
点赞 评论 收藏
分享
03-05 19:42
门头沟学院 Java
King987:有实习经历就重点写这里,要写够5点左右,才是有含金量的简历,改一改再投递,别浪费春招的投递机会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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