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 替我们做了哪些工作?
…
算法
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
- 冒泡排序
- 选择排序
- 快速排序
- 二叉树查找: 最大值、最小值、固定值
- 二叉树遍历
- 二叉树的最大深度
- 给予链表中的任一节点,把它删除掉
- 链表倒叙
- 如何判断一个单链表有环
- 给定一个有序数组,找出两个数相加为一个目标数
…
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以帮忙点赞+评论666
最后就是二分判断条件,所有边连接奶牛和挤奶点,所以为二分图,随即二分图多重匹配,用一个match数组存储C匹配的K,若是-1则C还未匹配,然后其他的我就注释在代码里算了,感觉写的还是蛮详细的
#include
#include <stdio.h>
#include <string.h>
#define INF 1000000005
using namespace std;
int K, C, M;
int data[255][255];
int match[205];
int used[35];
bool dfs(int v, int num)
{
used[v] = true;
for(int i = 0; i < C; i++)
{
if(data[v][K+i] <= num) //距离不能大于num(二分的mid)
{
int w = match[i];
if(w < 0 || !used[w] && dfs(w, num)) //先判断w<0,若端点没使用过,则直接连接,然后判断!used[w],防止重复递归, 最后判断dfs(w),若找到增广路,就return true;
{
match[i] = v;
return true;
}
}
}
return false;
}
bool deal(int num)
{
int res = 0;
memset(match, -1, sizeof(match));
for(int i = 0; i < K; i++)
{
int flag = 0; //记录一个挤奶点,匹配了几个奶牛
memset(used, 0, sizeof(used));
while(flag < M && dfs(i, num))
{
memset(used, 0, sizeof(used));
flag++; //每dfs成功一次,就相当于匹配了一个奶牛
}
res = res + flag;
if(res == C)
{
return true;
}
}
return false;
}
int main()
{
scanf(“%d %d %d”, &K, &C, &M);
for(int i = 0; i < K + C; i++)
{
for(int j = 0; j < K + C; j++)
{
scanf(“%d”, &data[i][j]);
if(i != j && data[i][j] == 0)
{
最后
四轮技术面+一轮hr面结束,学习到了不少,面试也是一个学习检测自己的过程,面试前大概复习了 一周的时间,把以前的代码看了一下,字节跳动比较注重算法,面试前刷了下leetcode和剑指offer, 也刷了些在牛客网上的面经。大概就说这些了,写代码去了~
祝大家都能收获大厂offer~
篇幅有限,仅展示部分内容
478.png)