前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯课堂 IMWeb 七天前端求职提升营 Day 3

腾讯课堂 IMWeb 七天前端求职提升营 Day 3

作者头像
Nian糕
修改2024-03-19 14:34:33
5660
修改2024-03-19 14:34:33
举报

本次的系列博文主要是针对 腾讯课堂七天前端求职提升营 课程中,所推送的面试题目及编程练习的一次汇总,期间还包括三次直播课的分享,均由腾讯导师给大家讲解,该系列博文的发布已得到 IMWeb 前端学院助教的许可

课程目录

腾讯课堂 IMWeb 七天前端求职提升营 Day 1

腾讯课堂 IMWeb 七天前端求职提升营 Day 2

腾讯课堂 IMWeb 七天前端求职提升营 Day 3

腾讯课堂 IMWeb 七天前端求职提升营 Day 4

腾讯课堂 IMWeb 七天前端求职提升营 Day 5

腾讯课堂 IMWeb 七天前端求职提升营 Day 6

腾讯课堂 IMWeb 七天前端求职提升营 Day 7

经典前端面试题

问题 1: 优先级算法如何计算?

重要性和来源的优先级排序从低到高是:

① 浏览器默认样式

② 用户在浏览器中定义的普通样式(normal 规则,不带 important 规则)

③ 开发人员定义的普通样式( normal 规则,不带 important 规则)

④ 开发人员定义特殊样式(带 important 规则)

⑤ 用户在浏览器中定义特殊样式(带 important 规则)

另外还有一些原则:

① 相同的样式在 CSS 规则后添加了 !important 的优先于没有添加的

② CSS 规则在文档中出现的顺序后面定义的的优先于前面定义的

③ 加了 !important 的优先于内联样式

④ 内联样式优先于用 link 引入的样式和页面上 <style> 里的样式

问题 2: split() 和 join() 的区别?

前者是切割成数组的形式,后者是将数组转换成字符串

问题 3: ajax 请求的时候 get 和 post 方式的区别?

① 一个在 url 后面 一个放在虚拟载体里面

② 有大小限制

③ 安全问题

④ 应用不同 一个是论坛等只需要请求的,一个是类似修改密码的

问题 4: IE 和标准下有哪些兼容性的写法?

Var ev = ev || window.event

document.documentElement.clientWidth || document.body.clientWidth

Var target = ev.srcElement||ev.target

前端常见题目个人思考题

1、 说一下你理解的 MVVM,画一下你的设计模式。

2、 说一下 H5 中的离线存储有哪些?

在线编程任务

—— 所有 AC 代码均在 JavaScript(V8 6.0.0)下提交通过 ——

题目 13:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

思路:

新建两个数组,分别用来存放奇数和偶数;

将偶数的数组连接到奇数数组后面。

代码语言:javascript
复制
function reOrderArray(array) {
    var odd = [];
    var even = [];
    
    for(var i = 0;i < array.length;i++){
        if((array[i]%2)===0){
            even.push(array[i]);
        }
        else{
            odd.push(array[i])
        }
    }
    return odd.concat(even);
}

题目 14:输入一个链表,输出该链表中倒数第 k 个结点。

代码语言:javascript
复制
function FindKthToTail(head, k) 
  { 
      if(!head||k<=0){return null;}else{ 
          var q=head; 
          var p=head; 
          for(var i=0;i<k-1;i++){ 
              if(p.next) 
              { p=p.next;}else{ 
                  return null; 
              }   
          } 
          for(;p.next;p=p.next){  
             q=q.next; 
          } 
         return q;  
      } 
  }

题目 15:输入一个链表,反转链表后,输出链表的所有元素。

代码语言:javascript
复制
function ReverseList(pHead)
{
    var pCur = null;
    var pNext = null;
    while(pHead !== null){
        pNext = pHead.next;
        pHead.next = pCur;
        pCur = pHead;
        pHead = pNext;
    }
    return pCur;    
}

题目 16:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

思路:

① 如果 pHead1 和 pHead2 中有一个为空,则 result 是另一个;

② 如果 pHead1 的头结点值小于 pHead2,那么 result 的头结点为 pHead1 的头结点,其 next 为 pHead1.next 和 pHead2 比较的结果。同理对 pHead2 也一样。

③ 因此本题可采用递归的方法。

代码语言:javascript
复制
function Merge(pHead1, pHead2) {
    // write code here
    if (pHead1 == null) {
        return pHead2;
    } else if (pHead2 == null) {
        return pHead1;
    }
    var result = {};
    if (pHead1.val < pHead2.val) {
        result = pHead1;
        result.next = Merge(pHead1.next, pHead2);
    } else {
        result = pHead2;
        result.next = Merge(pHead1, pHead2.next);
    }
    return result;
}

题目17:输入两棵二叉树 A,B,判断 B 是不是 A 的子结构。(ps:我们约定空树不是任意一个树的子结构)

相关知识:二叉树子结构的意思是包含了一个结点,可以只取左子树或者右子树,或者都不取。例如:

由于 A 中有一部分子树的结构和 B 是一样的,因此 B 是 A 的子结构。
由于 A 中有一部分子树的结构和 B 是一样的,因此 B 是 A 的子结构。

思路:

① 有关二叉树的算法问题,一般都可以通过递归来解决。那么写成一个正确的递归程序,首先一定要分析正确递归结束的条件。

② 如果根节点相同则递归调用 isSubtree(),如果根节点不相同,则判断 root1 的左子树和 root2 是否相同,再判断右子树和 tree2 是否相同;

③ 注意 null 的条件,HasSubTree 中,如果两棵树都不为空才进行判断,isSubtree 中,如果 root2 为空,则说明第二棵树遍历完了,即匹配成功;

④ root1 为空有两种情况:(1) 如果 root1为空 && root2 不为空说明不匹配,(2) 如果 root1 为空,root2 为空,说明匹配。

代码语言:javascript
复制
function isSubtree(root1, root2) {
    if (root2 == null) return true;
    if (root1 == null) return false;
    if (root1.val == root2.val) {
        return isSubtree(root1.left, root2.left) &&
            isSubtree(root1.right, root2.right);
    } else {
        return false;   
    }
}
 
function HasSubtree(pRoot1, pRoot2)
{
   if (pRoot1 == null || pRoot2 == null) {
       return false;
   }
    return isSubtree(pRoot1, pRoot2) ||
        HasSubtree(pRoot1.left, pRoot2) ||
        HasSubtree(pRoot1.right, pRoot2);
}

**题目 18:操作给定的二叉树,将其变换为源二叉树的镜像。 **

输入描述:

代码语言:javascript
复制
二叉树的镜像定义:源二叉树 
            8
           /  \
          6   10
         / \  / \
        5  7 9 11
        镜像二叉树
            8
           /  \
          10   6
         / \  / \
        11 9 7  5

思路:

① 有关二叉树的算法问题,一般都可以通过递归来解决。那么写一个正确的递归程序,首先一定要分析正确递归结束的条件。

② 先前序遍历这棵树的每个结点,如果遍历到的结点有子结点,就交换它的两个子节点;

③ 当交换完所有的非叶子结点的左右子结点之后,就得到了树的镜像。

代码语言:javascript
复制
function Mirror(root)
{
    if(root === null) {
        return;
    }
    var temp = root.left;
    root.left = root.right;
    root.right = temp;
    Mirror(root.left);
    Mirror(root.right);
}

—— 题目来源 剑指 offer ——

鹅厂求职直播课:如何申请大公司职位-面试笔试_旷旭卿导师

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 课程目录
  • 经典前端面试题
  • 前端常见题目个人思考题
  • 在线编程任务
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档