当前位置: 首页 > wzjs >正文

企业网站的建设与维护腾讯广告投放推广平台

企业网站的建设与维护,腾讯广告投放推广平台,浙江网站建设哪里好,wordpress lnmp根据2025年最新前端面试趋势,结合腾讯、阿里等大厂真题,我为你整理了以下高频算法题型及JS实现方案: 一、数组/字符串处理 1. 两数之和(哈希表法) 问题:找出数组中两数之和等于目标值的索引 const twoSu…

根据2025年最新前端面试趋势,结合腾讯、阿里等大厂真题,我为你整理了以下高频算法题型及JS实现方案:


一、数组/字符串处理

1. 两数之和(哈希表法)

问题:找出数组中两数之和等于目标值的索引

const twoSum = (nums, target) => {const map = new Map();for (let i = 0; i < nums.length; i++) {const complement = target - nums[i];if (map.has(complement)) return [map.get(complement), i];map.set(nums[i], i);  // 存储数值与索引的映射关系}
};
// 时间复杂度O(n),空间复杂度O(n)
2. 最长无重复子串(滑动窗口)

问题:求字符串中最长不重复字符的子串长度

const lengthOfLongestSubstring = (s) => {let map = new Map(), max = 0, left = 0;for (let right = 0; right < s.length; right++) {if (map.has(s[right])) left = Math.max(left, map.get(s[right]) + 1);map.set(s[right], right);  // 更新字符最新位置max = Math.max(max, right - left + 1);  // 窗口扩展时更新最大值}return max;
};
// 时间复杂度O(n),空间复杂度O(k)(k为字符集大小)

二、排序算法

1. 快速排序(分治思想)
const quickSort = (arr) => {if (arr.length <= 1) return arr;const pivot = arr.pop();const left = arr.filter(x => x <= pivot);const right = arr.filter(x => x > pivot);return [...quickSort(left), pivot, ...quickSort(right)];  // 递归拆分左右数组
};
// 平均时间复杂度O(n log n),最坏O(n²)
2. 冒泡排序(基础必考)
function bubbleSort(arr) {for (let i = 0; i < arr.length-1; i++) {for (let j = 0; j < arr.length-1-i; j++) {if (arr[j] > arr[j+1]) {[arr[j], arr[j+1]] = [arr[j+1], arr[j]];  // 相邻元素交换}}}return arr;
}
// 时间复杂度O(n²),空间复杂度O(1)

三、链表操作

1. 反转链表(迭代法)
function reverseList(head) {let prev = null, curr = head;while (curr) {const next = curr.next;  // 暂存后续节点curr.next = prev;        // 反转指针方向prev = curr;             // 前移prev指针curr = next;             // 前移curr指针}return prev;
};
// 时间复杂度O(n),空间复杂度O(1)
2. 合并有序链表(递归)
const mergeTwoLists = (l1, l2) => {if (!l1) return l2;if (!l2) return l1;if (l1.val < l2.val) {l1.next = mergeTwoLists(l1.next, l2);return l1;} else {l2.next = mergeTwoLists(l1, l2.next);return l2;  // 递归拼接较小节点}
};
// 时间复杂度O(m+n),空间复杂度O(m+n)

四、动态规划

1. 爬楼梯问题(斐波那契变种)
const climbStairs = (n) => {let [a, b] = [1, 1];for (let i = 2; i <= n; i++) [a, b] = [b, a + b];  // 滚动数组优化空间return b;
};
// 时间复杂度O(n),空间复杂度O(1)
2. 最大子序和
const maxSubArray = (nums) => {let pre = 0, maxAns = nums;nums.forEach(x => {pre = Math.max(pre + x, x);  // 判断是否舍弃前面序列maxAns = Math.max(maxAns, pre);});return maxAns;
};
// 时间复杂度O(n),空间复杂度O(1)

五、设计类问题

1. 实现Promise.all
Promise.myAll = (promises) => {return new Promise((resolve, reject) => {let results = [], count = 0;promises.forEach((p, i) => {p.then(res => {results[i] = res;if (++count === promises.length) resolve(results);  // 全部完成后返回}).catch(reject);  // 任一失败立即终止});});
};
2. 节流函数(Throttle)
function throttle(fn, delay) {let last = 0;return (...args) => {const now = Date.now();if (now - last < delay) return;last = now;fn.apply(this, args);  // 固定时间间隔触发};
}

高频考点总结

类别考察重点常考题型示例
数组双指针、哈希表应用两数之和、三数之和
字符串滑动窗口、正则处理回文判断、字符串转换
链表虚拟头节点、快慢指针环形链表检测、倒数第K个节点
递归与迭代转换层序遍历、对称二叉树判断
系统设计前端特定场景设计LRU缓存、发布订阅模式

练习建议:建议在LeetCode上重点练习「前端面试高频题库」标签下的题目,并注意边界条件处理(如空数组、单节点链表等特殊场景)。实际面试中,面试官常会要求手写代码后口述时间/空间复杂度及优化思路。


http://www.dtcms.com/wzjs/381780.html

相关文章:

  • 常用的网络营销的手段有百度seo关键词排名查询
  • 叫别人做网站需要注意什么拉新工作室在哪里接项目
  • 网站建设的安全可行性枣庄网站seo
  • 网络营销计划的七个步骤推广优化
  • 我要建房子去什么网站找人做益阳网络推广
  • 郑州上街网站建设公司开一个网站需要多少钱
  • 网站建设 建站知识优化大师下载电脑版
  • 做网站的要多钱中国去中心化搜索引擎
  • 建站abc网站破解百度seo排名工具
  • 加盟招商网站建设方案四川餐饮培训学校排名
  • 特供邯郸网站建设常见的搜索引擎
  • 关于建立企业网站的方案内容免费个人网站模板
  • 北京环球影城风险等级莱阳seo外包
  • 如何做网站的二级页面营销型网站策划书
  • 国家企业信用信息公示官网郑州网站优化平台
  • 网站建设 会议纪要郑州网站策划
  • 找网站公司做网站是怎样的流程白云区最新疫情
  • 装修公司加盟排行榜兰州seo
  • 城乡建设网站证件查询系统百度网盘登录入口官网
  • 站长工具seo综合查询全面解析今日国内新闻最新消息大事
  • 网站漂浮广告怎么做爱站网工具
  • 亚马逊网站建设评述网络营销方式有哪些?
  • 想在网站上放百度广告怎么做谷歌seo培训
  • 英文建设网站百度推广怎么收费标准
  • 齐齐哈尔北京网站建设网络营销与传统营销的区别
  • 建三江廉政建设网站足球排行榜前十名
  • 我国最新疫情最新消息搜索引擎优化解释
  • 腾讯有做淘宝客网站吗佛山百度关键词排名
  • 人防pc网站开发计划书南京网络优化公司有哪些
  • eclipce做网站做网络营销推广的公司