您的当前位置:首页正文

前端面试中可能遇到的算法问题

2024-12-18 来源:东饰资讯网

1.判断一个单词是否为回文?

所谓回文就是产生首尾回环的效果,叫做回文,也叫回环。比如 mnmnm abcba .

这其实就是考察我们对reverse的应用啦!我们可以利用函数,将字符串转换成数组在用join把他转为字符串进行比较就可判断出是不是回文了。

案例:      functionfun(str) {

                         if(str==str.split('').reverse().join('')){

                                           alert("是回文")

                               }else{

                                         alert("不是回文")

                                 }

                          }

                         fun("mnmnm")

2.数组去重

数组去重就是去掉一组数组中重复的数字

var arr = [1,1,2,2,3,3,4,4,5,6];

(1)先创建一个新空数组。在遍历旧数组与之比较,如果没有重复的添加到新空数组

var newArr=[];

 for(var i in arr){

 if(newArr.indexOf(arr[i])==-1){

 newArr.push(arr[i])

 }

 }

 document.write(newArr)

(2)遍历数组俩遍,让前一位于后一位比较,有重复的删除掉

for(var i=0;i

      for(var j=i+1;j

      if(arr[i]==arr[j]){

      arr.splice(j,1)

      j--

      }

      }

      }

      document.write(arr)

3.随机生成1-100的10个元素放入数组,

   输出最大值,最大值的下标、最小值、最小值的下标、平均值和总和

 var arr=[];

for (var i=0;i<10 ;i++ )

{

var sui=parseInt(Math.random()*100);

arr[i]=sui

}

document.write(arr+"
");

var arr1=arr[0];

for (var j=1;j

{

if (arr[j]>arr1)

{

arr1=arr[j]

}

}

document.write(arr1+"      "+arr.indexOf(arr1)+"
")

var arr2=arr[0];

for (var j=1;j

{

if (arr[j]

{

arr2=arr[j]

}

}

document.write(arr2+"    "+arr.indexOf(arr2)+"
");

var arr3=0;

for (var k=0;k

{

arr3+=arr[k]

}

document.write(arr3+"    "+arr3/10)

4.排序算法

var a=[9,2,33,66,55,56,34,1,91,88];

for(var i=0;i<a.lenght;i++){

for(var j=i+1;j<a.lenght;j++){

if(a[i]>a[j]){

var tmp=a[i];

a[i]=a[j]

a[j]=tep

}

}

document.write(a);

5.统计一个字符串出现最多的字母
var str ="zhaochucichuzuiduodezifu";

var arr = [];//定义一个新数组

//循环遍历字符串

for(var i = 0, length = str.length; i < length; i++) {

var index = -1;

var j = 0;

//找每一个字符

do{

index = str.indexOf(str[i], index + 1);

if(index != -1) {

j++;

}

}while(index != -1);

arr[j] = str[i];//把字符串str中的字符赋给数组arr索引为j的数据,当多次循环后,会出现重复赋值的现象,

//后赋值的会把之前的赋值覆盖掉,但不影响我们找出字符出现最多的那个

}

console.log(arr);

console.log("最多的字符是"+ arr[arr.length - 1]);

console.log("次数是"+ (arr.length - 1));

6.不借助临时变量,进行两个整数的交换

  这是我常用的方法

varfoo=1;bar=2;

bar=[foo,foo=bar][0];

console.log(foo);

console.log(bar);

以上是我自己的一点知识小结,如有不足,欢迎广大网友提意见


显示全文