几个js算法面试题

1.给定字符串str,检查其是否连续3个(升序或降序数字),如果有,返回第一个出现的连续3个数字(或者最后一次出现的连续三个数字)

2.给出一个数字数组,选出数组中的最大值(最小值)

 

 

第一题解决方案:

修改网络中给出的一种解决方案,感觉这个比较直白,链接贴一下:https://www.cnblogs.com/tyjz/p/7203486.html

function printNum(str){
str = str.split('').reverse().join('')//如果要输出最后一次出现的三个连续数字就加上这一行代码
var symbol1,symbol2,symbol3 ;

var results = [];

var array = str.split("");

for(var i=0;i<array.length - 2;i++){

symbol1 = array[i];

symbol2 = array[i + 1];

symbol3 = array[i + 2];

if(((symbol2 - symbol1) == (symbol3 - symbol2))&&(Math.abs(symbol2 - symbol1)==1)){

results.push(symbol1);

results.push(symbol2);

results.push(symbol3);

return results;

}

}

}
var results = printNum('123456789')
console.log(/*results.join('')*/results.reverse().join(''))//如果要输出最后一次出现的三个连续数字就选这二个
第二题解决方案:
function arrayMaxMini(arrs) {
var max = arrs[0];
var mini = arrs[0];
for (var i=0;i<arrs.length;i++) {
if (arrs[i]>max) {
max = arrs[i]
}
if (arrs[i]<mini) {
mini = arrs[i]
}
}
return [max, mini];
}
// 获取最大值和最小值
var arrs = [2,4,5,6,15,7,9,10];
console.log(arrayMaxMini(arrs));

转载于:https://www.cnblogs.com/fairy62/p/9773196.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值