剑指 Offer 50,前端组件化开发

18 阅读2分钟

Vue 面试题

1.Vue 双向绑定原理 2.描述下 vue 从初始化页面–修改数据–刷新页面 UI 的过程? 3.你是如何理解 Vue 的响应式系统的? 4.虚拟 DOM 实现原理 5.既然 Vue 通过数据劫持可以精准探测数据变化,为什么还需要虚拟 DOM 进行 diff 检测差异? 6.Vue 中 key 值的作用? 7.Vue 的生命周期 8.Vue 组件间通信有哪些方式? 9.watch、methods 和 computed 的区别? 10.vue 中怎么重置 data? 11.组件中写 name 选项有什么作用? 12.vue-router 有哪些钩子函数? 13.route 和 router 的区别是什么? 14.说一下 Vue 和 React 的认识,做一个简单的对比 15.Vue 的 nextTick 的原理是什么? 16.Vuex 有哪几种属性? 17.vue 首屏加载优化 18.Vue 3.0 有没有过了解? 19.vue-cli 替我们做了哪些工作? …

算法

  1. 冒泡排序
  2. 选择排序
  3. 快速排序
  4. 二叉树查找: 最大值、最小值、固定值
  5. 二叉树遍历
  6. 二叉树的最大深度
  7. 给予链表中的任一节点,把它删除掉
  8. 链表倒叙
  9. 如何判断一个单链表有环
  10. 给定一个有序数组,找出两个数相加为一个目标数 ...

由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666

开源分享:docs.qq.com/doc/DSmRnRG…

输入:s = "abaccdeff"

输出:'b'

示例 2:

输入:s = ""

输出:' '

题解思路


用哈希表存储键值对的方式

key表示字符串,value表示是否为第一次出现

两次遍历即可求出

上代码


class Solution {

public char firstUniqChar(String s) {

Map<Character,Boolean> map=new HashMap<>();

char[] sss=s.toCharArray();

for(char c: sss){

map.put(c,!map.containsKey(c));

//value 表示 添加时不包含s就为true 如果添加到相同的key就改为false

}

for(char c:sss){

if(map.get(c)==true){return c;}

}

return ' ';

}

}

执行用时:20 ms, 在所有 Java 提交中击败了64.19%的用户

内存消耗:38.4 MB, 在所有 Java 提交中击败了93.05%的用户

通过测试用例:104 / 104       

时间复杂度

最后

为了帮助大家更好的了解前端,特别整理了《前端工程师面试手册》电子稿文件。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】