昨天做了cvte的笔试题,想了一下,题目不难,但感觉自己做的不理想。。。
废话不多说,进入正题。
第一道编程题,要求如下:
实现一个函数,输入的数组是2n项,则把这数组以2个为一组分割,并使每个分割后的数组的最小值相加最大,并输出。
例如:【1,4,3,2】输出为4;
【1,5,7,9,4,12】输出为15.
第二道:html5中的localstroage是没有时间限制的,二次封装localstorage使其带有过期机制,过期后删去所有数据。
第一题,一开始我有点懵,没理解好题意,喝口水冷静一下,想到,要使每个分割后的数组的最小值相加最大,即是要让每个小的数和只比它大一点的数一组,那么别的数组分割后的数组的最小值就会大了。那么只要对输入的数组进行从小到大排序,之后分割就行,不多说,上码:
function minmax(m){
//首先判断输入的数组是否是2n
if(m.length%2 === 0){
m.sort(function(a,b){return a-b;});//对数组进行排序
var total=0;
for(let i = 0;i<m.length;i+=2){
total+=m[i];
}
console.log(total);