V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
beginor
V2EX  ›  程序员

这道题目面试过这么多人,第一次见这么答的 😂

  •  
  •   beginor ·
    beginor · 12 天前 · 13937 次点击

    这道题目面试过这么多人,第一次见这么答的 😂

    这道题目面试过这么多人,第一次见这么答的

    小伙子看起来挺醒目的,不像是装的,憋了半天写出的答案,作何感想?

    113 条回复    2025-04-04 13:47:00 +08:00
    1  2  
    wuzhi1234
        1
    wuzhi1234  
       12 天前 via iPhone   ❤️ 25
    简洁明了,建议直接入职
    xiaowoli
        2
    xiaowoli  
       12 天前
    哈哈哈哈哈 尽然还不是 ===
    ezerear
        3
    ezerear  
       12 天前
    你就说对不对吧😂
    kris0502
        4
    kris0502  
       12 天前
    没毛病,完全按照题目作答
    nice2cu
        5
    nice2cu  
       12 天前
    可能紧张理解错了吧 ,或者加一句 传入任意参数 进行格式化输出
    evan1
        6
    evan1  
       12 天前   ❤️ 39
    代码可读性高、扩展性高、可维护性强。
    paopjian
        7
    paopjian  
       12 天前   ❤️ 2
    骗分导论精髓啊, 先把样例打了, 其他过不过再说
    zpaeng
        8
    zpaeng  
       12 天前
    直接入职
    longzcxx
        9
    longzcxx  
       12 天前   ❤️ 5
    面向测试用例编程
    Cooky
        10
    Cooky  
       12 天前   ❤️ 5
    建议入职华为
    wyntalgeer
        11
    wyntalgeer  
       12 天前   ❤️ 5
    本日最佳!最喜欢看吊面试题的人,这种烂题工作中用得到?
    me1onsoda
        12
    me1onsoda  
       12 天前
    不能说 0 分
    402124773
        13
    402124773  
       12 天前   ❤️ 1
    是不是测试用例都通过了,是不是 o ( 1 )的时间复杂度
    ninjashixuan
        14
    ninjashixuan  
       12 天前   ❤️ 10
    过拟合(不是
    MozzieW
        15
    MozzieW  
       12 天前   ❤️ 39
    测试用例全过了,出问题是因为产品逻辑定义不清晰
    chairuosen
        16
    chairuosen  
       12 天前
    人肉打表法
    hefish
        17
    hefish  
       12 天前
    没毛病。满分。
    yaocai321
        18
    yaocai321  
       12 天前   ❤️ 3
    @wyntalgeer #11 一时不知道你是在串还是认真的。 先不说这个题烂不烂,但是这种时间 format 应该很常见吧
    kandaakihito
        19
    kandaakihito  
       12 天前
    力扣刷排位基操
    lqy2575395
        20
    lqy2575395  
       12 天前
    就问你性能强不强吧
    FrankAdler
        21
    FrankAdler  
       12 天前 via Android   ❤️ 1
    想看看 java boy 写的几百上千行的实现方式
    wu00
        22
    wu00  
       12 天前   ❤️ 5
    一看就是高手,招进来怼产品的好帮手!
    0 怎么输出
    60 怎么输出
    3600 怎么输出
    3601 怎么输出
    lyxxxh2
        23
    lyxxxh2  
       12 天前
    我之前也遇到过类似的面试者:
    写个函数,模仿 js 的 find 。
    如 js 的:
    const a = [{'id':1},{'id':3},]
    a.findIndex(item => item.id === 3)
    // 1

    结果:
    ```
    function find($arrs){
    foreach($arrs => $index => arr){
    if($arr['type'] === 3){
    return $index
    }
    }
    }
    ```
    跟他说我还可能有个 type,又在他 foreach 里面加个 type 。
    我又去菜鸟教程截屏给他:(微信先面试的)


    后续忘记了,由于前面几个问题,加我感觉他闭包都不晓得,我心里已经把他标记淘汰了。
    他说我态度不行,我也怼回去了 ...
    aikilan
        24
    aikilan  
       12 天前   ❤️ 2
    是不是 O(1)吧你就说
    bzw875
        25
    bzw875  
       12 天前
    用机器生成所有数字,用空间换时间。果然新头脑就是有新思路
    lasuar
        26
    lasuar  
       12 天前
    再满足题目要求的情况下,做到了输出正确,性能第一。
    Vegetable
        27
    Vegetable  
       12 天前
    答案正确,没用===,不合格。
    flyingghost
        28
    flyingghost  
       12 天前
    start = now()
    sleep(input)
    end = now()
    print(end - start)

    时间复杂度 O(n),此处 O(n)的意思是 n 是多少复杂度就是多少。
    liberty1900
        29
    liberty1900  
       12 天前 via iPhone   ❤️ 1
    最后一个 case 少了一个“小”字
    takanashisakura
        30
    takanashisakura  
       12 天前
    @flyingghost #28 深得 sleep 排序精髓
    kneo
        31
    kneo  
       12 天前
    有点像文心一言的答案。
    tonytonychopper
        32
    tonytonychopper  
       12 天前
    function formatTime(num: number) {
    const hour = Math.floor(num / 3600);
    const min = Math.floor((num - hour * 3600) / 60);
    const second = num - hour * 3600 - min * 60;
    return [
    { unit: '小时', value: hour },
    { unit: '分', value: min },
    { unit: '秒', value: second },
    ]
    .map(config => (config.value ? `${config.value}${config.unit}` : ''))
    .join('');
    }
    pvnk1u
        33
    pvnk1u  
       12 天前
    面向结果编程,你就说对不对吧
    xueyuehua
        34
    xueyuehua  
       12 天前   ❤️ 1
    是不是先对 3600 取模,余数在对 60 取模就行了
    moefishtang
        35
    moefishtang  
       12 天前 via Android
    面向测试用例编程😂时间复杂度 O(1),你就说运行得快不快吧
    levelworm
        36
    levelworm  
       12 天前 via Android
    @xueyuehua 输出的时候我估摸着还要看看分和时是不是零。
    shawnsh
        37
    shawnsh  
       12 天前 via Android   ❤️ 1
    MVP
    jqknono
        38
    jqknono  
       12 天前   ❤️ 5
    可以先申请一个 10w 字节的数组, 然后
    array[1]="1 秒"
    array[61]="1 分 1 秒"
    array[3661]="1 小时分 1 秒"

    这样以空间换时间, 使性能更优.
    flyqie
        39
    flyqie  
       12 天前 via Android
    @jqknono #38

    可扩展性极其优秀!
    EscYezi
        40
    EscYezi  
       12 天前 via iPhone
    写一个 http 调用 deepseek api ,然后把题干写提示词里🤣
    night98
        41
    night98  
       12 天前
    if n < 60 out n
    if n < 3600 out n % 60 xxxx
    else out xxxx
    rekulas
        42
    rekulas  
       12 天前   ❤️ 6
    这题太简单
    众所周知,闹钟是每秒滴答一次的,所以正确答案是这样
    ```
    function gettime(n) {
    const t = [0, 0, 0];
    const tick = () => {
    if (t[2]==60) {t[1]++;t[2]=0;}
    if (t[1]==60) {t[0]++;t[1]=0;}
    }
    for(let i=0;i<n;i++) {
    t[2]++;
    tick();
    }
    tick()
    return [t[0],[t[1],t[2]].join('分')].join('小时')
    }
    ```
    lts9165
        43
    lts9165  
       12 天前
    @rekulas 很棒
    kk2syc
        44
    kk2syc  
       12 天前
    离开 IDE 突然让我写 format 确实还得想半天,tab 按烂了
    ZRS
        45
    ZRS  
       12 天前 via iPhone
    打表很熟练
    kokerkov
        46
    kokerkov  
       12 天前
    你就说跑起来结果对不对吧。狗头
    kokerkov
        47
    kokerkov  
       12 天前
    @MozzieW 有理有据,令人信服
    tyrantZhao
        48
    tyrantZhao  
       12 天前
    打表大法好。
    superkkk
        49
    superkkk  
       12 天前 via iPhone
    @wyntalgeer 我们的产品里面真有这种小功能,后端传给前端时间戳,前端转成日期格式
    vikaptain
        50
    vikaptain  
       12 天前
    面向结果编程
    suofeiya
        51
    suofeiya  
       12 天前
    你就说结果对不对吧.
    liqingyou2093
        52
    liqingyou2093  
       12 天前
    小伙子挺不错的,if else 很熟练
    sir283
        53
    sir283  
       12 天前 via Android
    @wyntalgeer 这东西用的挺多的,你应该只是画个界面的,不用处理逻辑跟线程,所以你不需要用。
    987N
        54
    987N  
       12 天前
    你就说结果对不对吧.
    luzemin
        55
    luzemin  
       12 天前
    至少愿意尝试一把
    wuxiaolong89
        56
    wuxiaolong89  
       12 天前
    你就说对不对吧
    orlando
        57
    orlando  
       12 天前
    面向 LeetCode 骗分编程
    SevenElevenZ
        58
    SevenElevenZ  
       12 天前
    可塑性强! 建议直接入职
    miku999
        59
    miku999  
       12 天前
    3661 的错了, 不通过
    chengzigua
        60
    chengzigua  
       12 天前
    面向结果式编程
    mangwen
        61
    mangwen  
       12 天前
    直接入职,绝了
    18500592934
        62
    18500592934  
       12 天前
    这完全正确啊!毕竟题目只是说写一个函数,可没有其他要求了。
    lowly
        63
    lowly  
       12 天前
    @wyntalgeer 这个在实际工作中运用的还少?
    不论 to C 还是 to B 项目,只需要有时间,都倾向与当前时间进行比较吧
    几秒前、几分钟前、几小时前,几天前,时间差超出 2 两天或 3 天,一律按 m-Y-d 格式来输出展示
    这种需求不论产品还是需求方都会这么要求
    2218675712
        64
    2218675712  
       12 天前
    kakakakaka8889
        65
    kakakakaka8889  
       12 天前
    @yaocai321 直接 dayjs 完事
    kakakakaka8889
        66
    kakakakaka8889  
       12 天前
    @lowly dayjs 就可以搞定了
    kakakakaka8889
        67
    kakakakaka8889  
       12 天前
    @superkkk 不用 dayjs ?
    justfindu
        68
    justfindu  
       12 天前
    很明确不是吗
    lowly
        69
    lowly  
       12 天前
    @kakakakaka8889 他的回答不是用什么方法的问题,而是说这个面试题没意思,实际工作中并不会有这样的需求
    superkkk
        70
    superkkk  
       12 天前
    @kakakakaka8889 我是测试,不知道他们用什么实现的。
    LZWDRWEB
        71
    LZWDRWEB  
       12 天前
    面向机试开发
    Alias4ck
        72
    Alias4ck  
       12 天前
    通过了 3 个用例 没毛病呀
    hnliuzesen
        73
    hnliuzesen  
       12 天前
    跑表,是 ACM 选手
    semxau789
        74
    semxau789  
       12 天前
    @Cooky 你是懂华为的
    nzynzynzy
        75
    nzynzynzy  
       12 天前
    @Cooky #10 {山海经名字}计算器,运算逻辑上比友商对 CPU 性能的要求降低 99%
    jjwjiang
        76
    jjwjiang  
       12 天前
    个人觉得应该直接 sleep 对应的秒数,然后用当前时间减去初始时间就能轻松得出对应的时分秒了,节省了大量复杂度😁
    juzisang
        77
    juzisang  
       12 天前
    性能最优,测试用例全过,典型的 TDD 编程模式
    nenseso
        78
    nenseso  
       12 天前
    你就说过没过用例吧
    ZztGqk
        79
    ZztGqk  
       12 天前 via iPhone
    没有深度思考
    lychee930224
        80
    lychee930224  
       12 天前
    老 TDD 了
    xzylzz
        81
    xzylzz  
       11 天前
    @kakakakaka8889 #66 如果临时用一下,两分钟就能写完的东西有什么必要引入一个库?
    simo
        82
    simo  
       11 天前
    只关注你的头像了,比 v2 的好看
    richChou
        83
    richChou  
       11 天前
    @evan1 应该说 代码可读性、扩展性、可维护性极强
    richChou
        84
    richChou  
       11 天前
    @flyingghost 哈哈哈哈哈,测试会上来跟你拼了。
    sakura1988
        85
    sakura1988  
       11 天前   ❤️ 1
    题干应当给出具体的格式化规则,而不是给几个样例。单从题干来说,请问 86400 、604801 、31536001 、123456789 应该输出什么?
    题干本身极其不严谨,答题人直接打表没什么问题。
    gzhjj
        86
    gzhjj  
       11 天前
    就为了看看他能走多远,必须招进来
    kkbear
        87
    kkbear  
       11 天前   ❤️ 2
    这明显就是低智 AI 产品的答案啊
    leonshaw
        88
    leonshaw  
       11 天前
    然而最后一个 case 挂了,「 1 小时」写成了「 1 时」
    129duckflew
        89
    129duckflew  
       11 天前
    这人绝对是打过 ACM 的 打表选手
    EndlessMemory
        90
    EndlessMemory  
       11 天前
    哈哈哈
    adoal
        91
    adoal  
       11 天前
    由于题干不严谨,所以直接按用例打表没问题。面试官给他直接挂掉面试更没问题。
    sigma65535
        92
    sigma65535  
       11 天前
    直接 CTO,走起
    Deming19
        93
    Deming19  
       11 天前
    public string FormatTime(int num)
    {
    if (num < 0)
    throw new ArgumentException("分钟数不能为负数", nameof(num));

    TimeSpan duration = TimeSpan.FromMinutes(num);
    int totalHours = (int)duration.TotalHours; // 计算总小时数(含超过 24 小时的部分)

    return $"{totalHours}小时{duration.Minutes}分{duration.Seconds}秒";
    }
    sparklee
        94
    sparklee  
       11 天前
    fun convertToString(
    value: Int,
    units: Array<String> = arrayOf("小时", "分钟", "秒"),
    rates: Array<Int> = arrayOf(60 * 60, 60, 1)
    ): String {
    var _str = ""
    var _temp = value
    rates.forEachIndexed { index, v ->
    val t = _temp / v
    if (t > 0) {
    _str += (t.toString() + units[index])
    _temp %= v
    }
    }
    return _str
    }
    lesismal
        95
    lesismal  
       11 天前
    题目挺不错的!
    答案挺解压的!

    生活就是应该这个样子!
    lijilin92
        96
    lijilin92  
       11 天前
    快就完事了
    RoccoShi
        97
    RoccoShi  
       11 天前
    小时没打对
    jiaqili
        98
    jiaqili  
       11 天前
    能用吗?我就问你能不能用?(狗头
    mmrpeng
        99
    mmrpeng  
       11 天前
    符号普通人的思考过程
    def format_data(data):
    m = 60
    h = 60*m
    d = 24*h
    md = 30*d
    y = 12*md
    format_str = ""
    if(data < 0):
    return
    y_ = data // y
    if(y_):
    data = data - y_ * y
    format_str+="%d%s" % (y_, "年")
    md_ = data // md
    if(md_):
    data = data - md_ * md
    format_str+="%d%s" % (md_, "月")
    d_ = data // d
    if(d_):
    data = data - d_ * d
    format_str+="%d%s" % (d_, "日")
    h_ = data // h
    if(h_):
    data = data - h_ * h
    format_str+="%d%s" % (h_, "时")
    m_ = data // m
    if(m_):
    data = data - m_ * m
    format_str+="%d%s" % (m_, "分")

    s_ = data % m
    format_str+="%d%s" % (s_, "秒")
    print(format_str)
    dp
        100
    dp  
       11 天前
    没有毛病 满足需求
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5940 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 03:02 · PVG 11:02 · LAX 20:02 · JFK 23:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.