记录一下= =

本文分享了一次前端面试的经历,包括面试中被问及的技术问题及其回答情况,如行内元素与块状元素的区别、提高页面加载速度的方法等,并附带了一个三数之和算法题的解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感觉简历做的太水了。。。然后就是自己还是蛮水的。。。面试官是做后端的,不过前端水平应该也比我高。(我不该去搞前端的)


Q:行内元素和块状元素的区别?


A :我说的是块状元素单独占满一行,行内元素一行可以有许多个。。


Q:说几个块状元素和行内元素。


A:我答的是:行内: span,input,b,i  块状:div,table,h,p,ul。    事实上我还是知道更多的,,不过那时候太紧张了一时半会脑袋短路,就随口说了几个。。


Q:知道原型链吗?


A:我说知道,,然后说了下是用来共享方法和实例的,,,被面试官纠正后,,我又说是用来共享方法的。。不知道为什么没把属性说进去。。。。


Q:打开一个页面,如何提高加载速度?


A:确实没什么经验,我就把我想的说了。1:可以把js文件放到body的底部,可以先加载页面,在加载js文件。2:可以压缩代码(不知道对不对啊?)  3:利用cdn加速。。


Q:用过jquery吗?


A:用过,但只是入门了一下。


Q:html里面的doctype是用来干嘛的?


A:对这个了解的不多,以前看到过好像是什么模式之类的。我就随口说了一句好像是什么模式。。(正解:它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。)


然后就差不多了。。随便聊了几句。。面试就结束了。

问了下小伙伴,,,有一道笔试题还是不错的。。给一个数组 问a+b+c=0有多少对。。同样的组合只能算一对吧。。不算一对的话把下面代码的去重操作去掉就行了。

这道题我以前做过。。

然后就贴下代码讲下思路吧。

这题是two sums的改编版本,three sums。

首先,从小到大排序,然后去找b+c=-a。

然后注意重复的数就不计算了。

对于每个a,都有确定的b和c和它遥相呼应。我们都固定b和c的两个位置,一前一后。因为是有序的。所以b+c<-a的话就b就加一位,大于的话就c减一位。等于的话两个同时执行(顺便去重)。

简单的说就是两个指针移一下。

很显然复杂度是O(n^2),空间O(n)。如果你不会什么sort函数的话,也可以直接选择排序或者冒泡排序。。因为复杂度是不会变的。


#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    int t;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        int a[1005];
        for(int i=1; i<=n; i++)
            scanf("%d",&a[i]);
        sort(a+1,a+1+n);
        int ans=0;
        for(int i=1; i<=n-2; i++)
        {
            if(i==1 || i>1 &&a[i]!=a[i-1])
            {
                int sum=-a[i];
                int le=i+1;
                int ri=n;
                while(le<ri)
                {
                    if(a[le]+a[ri]==sum)
                    {
                        ans++;
                        while(a[le]==a[le+1] &&le<ri) le++;
                        while(a[ri]==a[ri-1] &&le<ri)ri--;
                        le++;
                        ri--;
                    }
                    else if(a[le]+a[ri]<sum)
                        le++;
                    else
                        ri--;
                }
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值