LeetCode——1656.设计有序流

通过万岁!!!

  • 题目:让你设计一个类,初始化一个长度为n的数组,然后里面有一个ptr指针。然后每次调用insert方法,往数组中的idkey位置加入一个元素,值是value,然后你需要返回一个链表,是从ptr开始,直到最后一个元素。并且ptr要指向下一个元素。也就是哪个空元素。
  • 思路:其实题目挺简单的,就是定义一个数组(构造函数)。下面就是insert方法了,for遍历这个数组,每次从ptr开始即可。遍历到不是空,就直接扔到一个list中。最后返回这个list。但是我的时间复杂度比较高,没有双百,明明我看了一下都是o(n)的时间复杂度。
  • 技巧:数组的遍历

java代码

class OrderedStream {
    int ptr = 0;
    String[] arrs;

    public OrderedStream(int n) {
        arrs = new String[n];
    }

    public List<String> insert(int idKey, String value) {
        arrs[idKey - 1] = value;
        List<String> ans = new LinkedList<>();
        int i = ptr;
        while (ptr < arrs.length && arrs[ptr] != null) {
            ans.add(arrs[ptr]);
            ptr++;
        }
        return ans;
    }
}
  • 总结:题目不是特别难,毕竟也是简答题么。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值