1、统计一个字符串中出现最多的字母
给出一个字符串,统计出现次数最多的字母。如:“wqeqwhixswiqhdxsq”,其中出现最多的是q.
js算法的实现
function findMax(str){
if (str.length ==1){
return str;
}
let charObj = {};
for (let i=0;i<str.length;i++) {
if(!charObj[str.charAt(i)]){
charObj[str.charAt(i)]=1;
} else{
charObj[str.charAt(i)]+=1;
}
}
let maxChar='',
maxValue=1;
for (var k in charObj){
if (charObj[k]>=maxValue){
maxChar=k;
maxValue = charObj[k];
}
}
return maxChar;
}
2、顺序算法
a、冒泡排序
function mao(arr){ for (let i=0,i<arr.length-1,i++){ for(let j=0;j<arra.length-i-1; j++){ if (arr[i]>arr[j]){ let tem =arr[i]; arr[i]=arr[j]; arr[j] =tem; } } } return arr; }
b、快速排序(快排)
function quick(arr){
if (arr.length<=1){
return arr;
}
let leftArr=[];
let rightArr=[];
let q=arr[0];
for(let i=1; i<arr.length;i++){
if (arr[i]>q){
rightArr.push(arr[i]);
} else{
leftArr.push(arr[i]);
}
}
return [].concat(quick(leftArr),[q],quick(rightArr));
}
6、斐波那契数列
js的实现方法
function getFib(n){
var fibairr =[];
var i=0;
while(i<n) {
if (i<=1){
fibarr.push(i);
} else{
fibarr.push(fibarr[i-1])
}
i++;
}
return fibarr;
}