Vijous系列(1)LIS 最长不下降子序列的应用,2024年最新大厂面试必备技能

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Web前端全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024c (备注前端)
img

正文

{

f1[i]=1;

f2[i]=1;

}

for (int i=1;i<n;i++)

for (int j=0;j<i;j++)

if (a[i]>a[j]) f1[i]=max(f1[i],f1[j]+1);

for (int i=n-2;i>=0;i–)

for (int j=n-1;j>i;j–)

if (a[i]>a[j]) f2[i]=max(f2[i],f2[j]+1);

int sum=0;

for (int i=0;i<n;i++)

sum=max(sum,f2[i]+f1[i]-1); //每个数被重复计数一次,应-1

sum=n-sum;

printf(“%d”,sum);

return 0;

}

3、 P1369难解的问题  https://vijos.org/p/1369

分析:分别求2次LIS(第一次:以第K项为结尾(一定要包含第K项)的最长LIS+

第二次:以第K项为开始(一定要包含第K项)的最长LIS)

注意的地方:要用长整型,二分查找的修改由temp>=dp[mid].num修改为temp>dp[mid].num

因为例如数据 14 3

0 0 0 6 8 4 5 6 7 9 8 9 5 10

注意观察前三项在DP时的变化。

#include

#include

#include

#include

using namespace std;

const int maxn=300005;

struct Node

{

long long num;

};

Node dp[maxn];

int main()

{

int n,k,len=0;

long long tmp;

scanf(“%d%d”,&n,&k);

dp[0].num=-1;

int top=0;

for (int i=1;i<=k;i++)

{

scanf(“%lld”,&tmp);

if (tmp > dp[top].num)

{

dp[++top].num=tmp;

if (i == k)

{

len=top;

}

}

else

{

int l=1,r=top;

int mid;

while (l <= r)

{

mid=(l+r)/2;

if (tmp > dp[mid].num){

l=mid+1;

}

else{

r=mid-1;

}

}

dp[l].num=tmp;

if (i == k)

len=l;

}

}

top=1;

dp[top].num=tmp;

for (int i=k+1;i<=n;i++)

{

scanf(“%lld”,&tmp);

if (tmp>dp[top].num){

dp[++top].num=tmp;

}

else

{

int l=1,r=top;

int mid;

while (l <= r)

{

mid=(l+r)/2;

if (tmp > dp[mid].num){

l=mid+1;

}

else{

r=mid-1;

}

}

if (l!=1)

{

dp[l].num=tmp;

}

}

}

printf(“%d\n”,top+len-1);

return 0;

}

4、 P1474雷曼兔(csapc) https://vijos.org/p/1474

分析:LIS的变形,题目告诉只能出现1~n的内的数,切每个数都得出现一次。。。倒序LIS一次,计算最大的华丽度总和即可

//v=(|x1-x2|+|y1-y2|)^2

#include

#include

#include

#include

#include

using namespace std;

struct node

{

int x,y,score;

};

int poww(node a,node b)

{

return (abs(a.x-b.x)+abs(a.y-b.y))*(abs(a.x-b.x)+abs(a.y-b.y));

}

node sum[2501];

int main()

{

int n,a;

scanf(“%d”,&n);

for (int i=0;i<n;i++)

for (int j=0;j<n;j++){

scanf(“%d”,&a);

sum[a].x=i;

sum[a].y=j;

}

for (int i=n*n-1;i>=1;i–) // 逆序LIS

for (int j=i+1;j<=n*n;j++)

{

int p=poww(sum[i],sum[j]);

sum[i].score=max(sum[j].score+p,sum[i].score);

}

printf(“%d\n”,sum[1].score);

return 0;

}

5、 P1571笨笨的导弹攻击    https://vijos.org/p/1571

分析:使得这些被抽取出来的导弹奇数位置的编号大于其前一个的编号,偶数位置的编号小于其前一个的编号,这样子才能够正常使用这些导弹攻击目标

用f[ i ] 表示到第i个导弹时,最大可击中目标的导弹数,由题意知,需考虑奇数和偶数情况,接着LIS即可

#include

#include

#include

#include

using namespace std;

const int maxn=10005;

int a[maxn],f[maxn];

int main()

{

int n;

scanf(“%d”,&n);

for (int i=1;i<=n;i++)

scanf(“%d”,&a[i]);

for (int i=1;i<=n;i++)

for (int j=i+1;j<=n;j++)

{

if (f[i]%2==1){ //奇数情况

if (a[j]>a[i]) f[j]=max(f[j],f[i]+1);

}

else if(f[i]%2==0) //偶数情况

if (a[j]<a[i]) f[j]=max(f[j],f[i]+1);

}

int ans=0;

for (int i=1;i<=n;i++)

ans=max(ans,f[i]);

cout<<ans+1<<endl;

return 0;

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 替我们做了哪些工作?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
1.组件中写 name 选项有什么作用?
12.vue-router 有哪些钩子函数?
13.route 和 router 的区别是什么?
14.说一下 Vue 和 React 的认识,做一个简单的对比
15.Vue 的 nextTick 的原理是什么?
16.Vuex 有哪几种属性?
17.vue 首屏加载优化
18.Vue 3.0 有没有过了解?
19.vue-cli 替我们做了哪些工作?
[外链图片转存中…(img-YSIg0zwf-1713395248161)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注前端)
[外链图片转存中…(img-ZztFYC7p-1713395248161)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值