美文网首页程序猿日记
景驰科技一面面经(3.29)

景驰科技一面面经(3.29)

作者: __Kirito_ | 来源:发表于2018-03-30 23:07 被阅读74次

面试官在美国,因此约的时间只能是早上八点到九点。一晚上没睡好。
面试官是我面过的觉得最好的了,在我不会的时候可以耐心等我想一下,我说实在不会的会给我一点提示,让我再想,无奈我太菜了。

自我介绍

讲讲项目

题目一

给出指定精度的double类型开方
写了个二分,但是0的时候忘了判,在面试官提示下加了个特判。

题目二

一条直线上有n个包裹,给出包裹的坐标,现在要修建一个仓库,使得所有包裹到仓库的花费之和最小,花费定义为包裹到仓库的距离的平方,问仓库的位置。

一开始我说是中位数,后来面试官用试探的语气说确定吗,我又说是平均数,然后在草稿上算了下,面试官不等我算完直接说现在告诉你是平均数,你可以证明一下吗。
然后我就开始证明:

假设位置为x[],仓库的位置为avg,距离总和为sum。
cost = (x[0] - avg)^2 + (x[1] - avg)^2 + ... + (x[n-1] - avg)^2
     = (x[0]^2 + x[1]^2 + ... + x[n-1]^2) - 2 * (x[0] + x[1] + ... + x[n-1]) * avg + n * avg^2
     = c(常数) - 2 * b(常数) * avg + a(常数) * avg^2
极值 = (-b) / (2*a) = 2 * sum / (2 * n) = sum / n = 平均数

题目三

第三题就是将第二题的一个仓库改为m个仓库的时候的最小花费。
面试官一开始提示用dp,然后再给我定义了一个状态,就差把递推式告诉我了,我还是不会。面试官表示绝望,说时间不多了,我们先这样吧。
后面自己写了一遍。
具体思路可以看 我的博客链接

#include <bits/stdc++.h>
using namespace std;
const int N = 211;
const int INF = 0x3f3f3f3f;
int n, m, x[N];
double dp[N][N], cost[N][N];
 
int main() {
    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i++) scanf("%d", &x[i]);
    for (int i = 1; i <= n; i++) {
        for (int j = i; j <= n; j++) {
            double sum = 0;
            for (int k = i; k <= j; k++)
                sum += x[k];
            sum /= (j - i + 1);
            cost[i][j] = 0;
            for (int k = i; k <= j; k++)
                cost[i][j] += (x[k] - sum) * (x[k] - sum);
        }
    }
    // 定义状态dp[i][j]为前i个包裹用j个仓库的最小花费
    for (int i = 0; i <= n; i++) for (int j = 0; j <= m; j++) dp[i][j] = 1e9;
    dp[0][0] = 0;
    for (int i = 1; i <= n; i++) { // 枚举当前要放多少个包裹
        for (int j = 1; j <= i && j <= m; j++) { // 枚举仓库,要求仓库的数量比包裹数量少
            for (int k = j; k <= i; k++) {
                // 枚举从第k个包裹到第i个包裹全都放到最后一个仓库,
                // 而且满足前面的j-1个仓库都至少一个包裹
                dp[i][j] = min(dp[i][j], dp[k-1][j-1] + cost[k][i]);
            }
        }
    }
    printf("%.2f\n", dp[n][m]);
    return 0;
}
 
/*
6 3
1 3 7 9 10 16
5 3
1 3 7 9 10
1 1
5
*/

总结

相对擅长的算法被碾压了,表示受到打击。在准备其他的过程中,还是得保持刷题的手感。

相关文章

  • 景驰科技一面面经(3.29)

    面试官在美国,因此约的时间只能是早上八点到九点。一晚上没睡好。面试官是我面过的觉得最好的了,在我不会的时候可以耐心...

  • 2018-11-07

    政企优质服务商刻画8家——苏州景维信息科技有限公司、苏州紫橙网新信息科技有限公司、无锡奥驰豪迈科技有限公司、江苏智...

  • 腾讯一面面经

    昨天收到腾讯的面试通知(考完腾讯的笔试以为挂了,就没抱希望,没想到还有面试机会) 给大家分享一下,就当攒个人品。 ...

  • 51一面面经

    一共面了三十分钟,面试官的问题既有广度又有深度,你说的深入他能问的更深入,一直锤到你不会为止。能不能过还不好说,因...

  • 网易一面面经

    自我介绍 TCP三次握手和四次挥手的过程 为什么是三次握手 JDK动态代理 如果没有实现接口使用什么?(CGLIB...

  • 小米一面面经

    面试官刚好出差来武汉,就现场面的,主要问的都是java基础,把我记住的和大家分享一下吧 1简单的聊了会项目,似乎...

  • 字节 一面面经

    一个岛上110只老虎,有一只小羊,老虎吃了羊最后就变成羊,请问吃不吃小羊, 偶数不吃数学推理题,从1开始推导 ht...

  • OPPO一面面经

    前端优化有哪些方法改变this指向有哪些方法bind()的返回结果是啥作用域讲一下Vue双向数据绑定的原理移动端的...

  • 景驰科技获得 3000 万美元天使轮融资,无人车已完成通勤高峰路

    今日, 景驰科技创始人、CEO 王劲在华创·思享公开日上透露,这家自动驾驶初创公司已经完成 3000 万美元天使轮...

  • 2018七月随笔小记

    7月8日,景驰联合创始人潘思宁继昨日发布声明控告景驰CFO吕庆未经同意质押其股权,近期又伪造潘的个人签名,将北京景...

网友评论

    本文标题:景驰科技一面面经(3.29)

    本文链接:https://www.haomeiwen.com/subject/bclwcftx.html