回复: 7
跳转到指定楼层
上一主题 下一主题
收起左侧

affirm店面

🔗
匿名用户-O1O65  2024-5-9 00:59:10 |倒序浏览

2024(1-3月) 码农类General 硕士 全职@affirm - 网上海投 - 技术电面  | 😐 Neutral 😐 Average | Fail | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
电面挂经

地理常考题hit counter那个. 没准备过裸奔的.
我好像误会了题目的意思. 最后没时间了
题目是实现两个functions
process_amount(int amount)  
process_total_amount() //输出1小时内total amount

反正挂了就把代码放一下,求大佬指点哪里出问题了
[这里假设就把5s暂且当作1小时.
我的想法是用hashmap去存每1秒的/timestam, 和每一秒所存的amount.
这里时间是O(1),空间是O(n) ?

public class hitCount {
    int timeStamp;
    Map<Integer, Integer> map;
    int total
您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 188 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies
       hitCount.processLoan(2);
        System.out.println(hitCount.getLoan()); //48
        hitCount.processLoan(12);
        hitCount.processLoan(30);
        System.out.println(hitCount.getLoan()); //70
    }

评分

参与人数 1大米 +5 收起 理由
匿名用户-ZX0TK + 5 欢迎分享你知道的情况,会给更多大米奖励!

查看全部评分


上一篇:狗狗店面
下一篇:🥕 Instacart L3 过经干货
全局:
不需要hashmap,直接deque就行了。。
比如要5秒的话,只需要长度为6的deque,前面多余的直接pop掉。。
当前的答案就是队首与队尾的差值。。
回复

使用道具 举报

全局:
匿名用户 发表于 2024-5-8 18:30
我似乎get到你的意思.
就是直接用deque 去存amount就可以了?
其实deque就maintain 5个element而已,  ...

不是存amount,是存totalamount,类似前缀和的思路。。
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-O1O65  2024-5-9 01:38:48
本帖最后由 匿名 于 2024-5-8 13:50 编辑
vincent_great 发表于 2024-5-8 13:15
不需要hashmap,直接deque就行了。。
比如要5秒的话,只需要长度为6的deque,前面多余的直接pop掉。。
当 ...

!!!!!!!!!
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-O1O65  2024-5-9 02:30:36
vincent_great 发表于 2024-5-8 13:15
不需要hashmap,直接deque就行了。。
比如要5秒的话,只需要长度为6的deque,前面多余的直接pop掉。。
当 ...

我似乎get到你的意思.
就是直接用deque<Integer> 去存amount就可以了?
其实deque就maintain 5个element而已, 每次processLoan的时候如果deque已经有5个了,就pop掉最前面的一个. 否则就加进去,对吧?
这样的话,时间上是O(1), 空间上也是O(1)因为deque的size是fixed的.
public class hitCount {
    Deque<Integer> deque;

    public hitCount(){
        deque = new LinkedList<>();
    }

    public void processLoan(int amount){
        if (deque.size() == 0) deque.add(amount);
        else if (deque.size() == 5) {
            deque.add(deque.getLast() + amount - deque.getFirst());
            deque.removeFirst();
        }
        else deque.add(deque.getLast() + amount);
    }

    public int getLoan(){
        return deque.getLast();
    }

    public static void main(String[] args) {
        hitCount hitCount = new hitCount();
        hitCount.processLoan(5);
        hitCount.processLoan(7);
        hitCount.processLoan(8);
        System.out.println(hitCount.getLoan()); //20
        hitCount.processLoan(15);
        hitCount.processLoan(11);
        System.out.println(hitCount.getLoan());  //46

        hitCount.processLoan(2);
        System.out.println(hitCount.getLoan()); //43
        hitCount.processLoan(17);
        hitCount.processLoan(30);
        System.out.println(hitCount.getLoan()); //58

        hitCount.processLoan(8);
        System.out.println(hitCount.getLoan()); //29
    }
}
回复

使用道具 举报

🔗
rhs980904 2024-5-9 16:35:57 | 只看该作者
全局:
有点可惜了,这个是地里出现过的高频题了,anyway希望楼主下一个更好吧
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-KM5QW  2024-10-8 00:53:38
楼主面的哪个level呢
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-GXEKP  2024-11-5 14:49:32
请问这是哪道题呀 传送门
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表