1.问了些项目,数据库,相关的东西,没细问
2.乐观锁悲观锁的怎么用,这个没答上来,看一看
https://www.jianshu.com/p/f5ff017db62a

3.实现一个微博的两个方法add,query操作,
add(user,time)
某用户某时刻发了一篇微博

query(user,start,end)
查询某时间段用户有多少条微博

全部在内存中实现,不需要数据库。

我写了一个线段树,测试的时候出了故障。。。。学会写了没用过,查询的是开区间(),而我们要的闭区间【】,害我查了半天,哎,遗憾的一点。
不过第一次用了c++类去写,也学习了一把。

#include <iostream>

using namespace std;

class WB{
    private:
    int n=1;
// 第一位表示用户,第二维表示时间,时间假设已经映射为int数字。
    int data[100][20005];

    public:
    void init(){
        while(n<10000)
            n=n*2;
        //cout<<"n: "<<n<<endl;
        for(int i=0;i<100;i++){
             for(int j=0;j<n;j++){
                data[i][j]=0;
            }
        }
    }

    void add(int user,int time){
        int k=time+n-1;
        data[user][k]++;
        while(k>0){
            k=(k-1)/2;
            data[user][k]=data[user][k*2+1]+data[user][k*2+2];
        }
    }

    int query(int user,int start,int end){
        if(start>end){
            swap(start,end);
        }
//开区间() 改为闭区间[]
        start--;
        end++;
        return RMQ(user,start,end,0,n,0);
    }

    int RMQ(int user,int start,int end,int l,int r,int k){
        if(end<=l||start>=r)return 0;
        if(start<=l&&end>=r)return data[user][k];
        int v1=RMQ(user,start,end,l,(l+r)/2,k*2+1);
        int v2=RMQ(user,start,end,(l+r)/2,r,k*2+2);
        return v1+v2;
    }
};


int main() {
    WB* w = new WB();
    w->init();
    w->add(1,1);
    w->add(1,1);
    w->add(1,1);
    w->add(1,2);
    w->add(1,5);
    w->add(1,10);

    int ans=w->query(1,1,9);
    cout<<ans<<endl;




    //cout << "Hello World!" << endl;
}