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

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

  •  
  •   beginor ·
    beginor · 23 小时 14 分钟前 · 9903 次点击

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

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

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

    98 条回复    2025-03-26 16:08:12 +08:00
    wuzhi1234
        1
    wuzhi1234  
       23 小时 12 分钟前 via iPhone   ❤️ 13
    简洁明了,建议直接入职
    xiaowoli
        2
    xiaowoli  
       23 小时 12 分钟前
    哈哈哈哈哈 尽然还不是 ===
    ezerear
        3
    ezerear  
       23 小时 12 分钟前
    你就说对不对吧😂
    kris0502
        4
    kris0502  
       23 小时 12 分钟前
    没毛病,完全按照题目作答
    nice2cu
        5
    nice2cu  
       23 小时 11 分钟前
    可能紧张理解错了吧 ,或者加一句 传入任意参数 进行格式化输出
    evan1
        6
    evan1  
       23 小时 10 分钟前   ❤️ 34
    代码可读性高、扩展性高、可维护性强。
    paopjian
        7
    paopjian  
       23 小时 9 分钟前   ❤️ 1
    骗分导论精髓啊, 先把样例打了, 其他过不过再说
    zpaeng
        8
    zpaeng  
       23 小时 9 分钟前
    直接入职
    longzcxx
        9
    longzcxx  
       23 小时 8 分钟前   ❤️ 3
    面向测试用例编程
    Cooky
        10
    Cooky  
       23 小时 7 分钟前   ❤️ 4
    建议入职华为
    wyntalgeer
        11
    wyntalgeer  
       23 小时 7 分钟前   ❤️ 5
    本日最佳!最喜欢看吊面试题的人,这种烂题工作中用得到?
    me1onsoda
        12
    me1onsoda  
       23 小时 6 分钟前
    不能说 0 分
    402124773
        13
    402124773  
       23 小时 6 分钟前
    是不是测试用例都通过了,是不是 o ( 1 )的时间复杂度
    ninjashixuan
        14
    ninjashixuan  
       23 小时 5 分钟前   ❤️ 10
    过拟合(不是
    MozzieW
        15
    MozzieW  
       23 小时 4 分钟前   ❤️ 32
    测试用例全过了,出问题是因为产品逻辑定义不清晰
    chairuosen
        16
    chairuosen  
       23 小时 2 分钟前
    人肉打表法
    hefish
        17
    hefish  
       23 小时 2 分钟前
    没毛病。满分。
    yaocai321
        18
    yaocai321  
       23 小时 1 分钟前   ❤️ 2
    @wyntalgeer #11 一时不知道你是在串还是认真的。 先不说这个题烂不烂,但是这种时间 format 应该很常见吧
    kandaakihito
        19
    kandaakihito  
       22 小时 58 分钟前
    力扣刷排位基操
    lqy2575395
        20
    lqy2575395  
       22 小时 56 分钟前
    就问你性能强不强吧
    FrankAdler
        21
    FrankAdler  
       22 小时 44 分钟前 via Android   ❤️ 1
    想看看 java boy 写的几百上千行的实现方式
    wu00
        22
    wu00  
       22 小时 34 分钟前   ❤️ 5
    一看就是高手,招进来怼产品的好帮手!
    0 怎么输出
    60 怎么输出
    3600 怎么输出
    3601 怎么输出
    lyxxxh2
        23
    lyxxxh2  
       22 小时 33 分钟前
    我之前也遇到过类似的面试者:
    写个函数,模仿 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  
       22 小时 31 分钟前   ❤️ 1
    是不是 O(1)吧你就说
    bzw875
        25
    bzw875  
       22 小时 26 分钟前
    用机器生成所有数字,用空间换时间。果然新头脑就是有新思路
    lasuar
        26
    lasuar  
       22 小时 23 分钟前
    再满足题目要求的情况下,做到了输出正确,性能第一。
    Vegetable
        27
    Vegetable  
       22 小时 18 分钟前
    答案正确,没用===,不合格。
    flyingghost
        28
    flyingghost  
       21 小时 54 分钟前
    start = now()
    sleep(input)
    end = now()
    print(end - start)

    时间复杂度 O(n),此处 O(n)的意思是 n 是多少复杂度就是多少。
    liberty1900
        29
    liberty1900  
       21 小时 43 分钟前 via iPhone   ❤️ 1
    最后一个 case 少了一个“小”字
    takanashisakura
        30
    takanashisakura  
       21 小时 40 分钟前
    @flyingghost #28 深得 sleep 排序精髓
    kneo
        31
    kneo  
       21 小时 36 分钟前
    有点像文心一言的答案。
    tonytonychopper
        32
    tonytonychopper  
       21 小时 36 分钟前
    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  
       21 小时 18 分钟前
    面向结果编程,你就说对不对吧
    xueyuehua
        34
    xueyuehua  
       21 小时 0 分钟前   ❤️ 1
    是不是先对 3600 取模,余数在对 60 取模就行了
    moefishtang
        35
    moefishtang  
       20 小时 56 分钟前 via Android
    面向测试用例编程😂时间复杂度 O(1),你就说运行得快不快吧
    levelworm
        36
    levelworm  
       20 小时 38 分钟前 via Android
    @xueyuehua 输出的时候我估摸着还要看看分和时是不是零。
    shawnsh
        37
    shawnsh  
       20 小时 24 分钟前 via Android
    MVP
    jqknono
        38
    jqknono  
       20 小时 18 分钟前   ❤️ 3
    可以先申请一个 10w 字节的数组, 然后
    array[1]="1 秒"
    array[61]="1 分 1 秒"
    array[3661]="1 小时分 1 秒"

    这样以空间换时间, 使性能更优.
    flyqie
        39
    flyqie  
       18 小时 47 分钟前 via Android
    @jqknono #38

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

    生活就是应该这个样子!
    lijilin92
        96
    lijilin92  
       1 小时 8 分钟前
    快就完事了
    RoccoShi
        97
    RoccoShi  
       48 分钟前
    小时没打对
    jiaqili
        98
    jiaqili  
       28 分钟前
    能用吗?我就问你能不能用?(狗头
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5144 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:36 · PVG 16:36 · LAX 01:36 · JFK 04:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.