阿里笔试 使用 JavaScript 实现一个 getIntersection 函数,可获取多个区间的交集
示例:
getIntersection([1, 4], [3, 5]); // return [ 3, 4 ]
getIntersection([5, 2], [4, 9], [3, 6]); // return [ 4, 5 ]
getIntersection([1, 7], [8, 9]); // return null
getIntersection(['x', 7], [4, 9]); // return null
getIntersection([1, 2]); // return [ 1, 2 ]
getIntersection([1, 2], [2, 3]); // return [ 2, 2 ]
对于这一题,,,,表示不会实现函数接收不定参数,于是乎只做到了完成两个参数的
还是有太多东西不会啊
我的提交:
function getIntersection(args1 ,args2 ) {
args1="'"+args1+"'";
args1a=args1.charAt(1);
args1b=args1.charAt(3);
args2="'"+args2+"'";
args2a=args2.charAt(1);
args2b=args2.charAt(3);
if(isNaN(args1a) || isNaN(args1b) || isNaN(args2a) || isNaN(args2b) )
return null;
if(args1a>args1b){
chang=args1a;
args1a=args1b;
args1b=chang;
}
if(args2a>args2b){
change=args2a;
args2a=args2b;
args2b=change;
}
if(args1a<args2a){
if(args1b<args2b){
result2=args1b;
result1=args2a;
}else{
result2=args2b;
result1=args2a;
}
}else{
changea=args1a;
changeb=args1b;
args1a=args2a;
args1b=args2b;
args2a=changea;
args2b=changeb;
if(args1b<args2b){
result2=args1b;
result1=args2a;
}else{
result2=args2b;
result1=args2a;
}
}
result="["+result1+","+result2+"]";
if(args1b<args2a)
return null;
return result;
}
应该可以
提交评论
受教了
提交评论
实现
getIntersection
,可接收多个区间,并返回所有区间的交集(用区间表示),如空集用null表示区间用长度为2的数字数组表示,如[2, 5]表示区间2到5(包括2和5);
区间不限定方向,如[5, 2]等同于[2, 5];
【示例】
提交评论