当前位置: 首页 > Web前端 > HTML

前端面试算法题

时间:2023-04-02 21:07:34 HTML

1.不使用临时变量交换两个整数//方法一ES6vara=1,b=2;[a,b]=[b,a];console.log(a,b)//方法二异或运算,0或1均为0,10为1varc=3,d=4;c=c^d;d=c^d;c=c^d;console.log(c,d)2.字符串查找:请用最基本的遍历实现字符串a是否包含在字符串b中,返回第一次出现的位置(没有找到则返回-1)。例子:a='34';b='1234567';//返回2a='35';b='1234567';//返回-1a='355';b='12354355';//返回5isContain(a,b);答案:functionisContain(a,b){for(letiinb){if(a[0]===b[i]){lettmp=true;for(letjina){if(a[j]!==b[~~i+~~j]){tmp=false;}}if(tmp){返回i;}}}return-1;}三、统计一个字符串出现次数最多的字母:给定一个连续的英文字符序列,找出重复次数最多的字母。示例:输入:afjghdfraaaasdenas输出:a答案:functionfindMaxDuplicateChar(str){if(str.length==1){returnstr;}让charObj={};for(leti=0;i=maxValue){maxChar=k;最大值=charObj[k];}}返回最大字符;}module.exports=findMaxDuplicateChar;4.求下列正数组最大差的例子:输入[10,5,11,7,8,9]输出6答案:functiongetMaxProfit(arr){varminPrice=arr[0];VAr最大利润=0;for(vari=0;iarr[mid]){start=mid+1;}elseif(targetarr[mid]){start=mid+1;返回二进制搜索(arr、目标、开始、结束);}elseif(target