Contents

ARST打卡第142周[142/521]

Algorithm

lc2034_股票价格波动

思路: 用一个最大最小值记录最大最小值(val,也可以用有序队列multimap记录一排值,或者大小优先队列),然后用无序的unordered_map返回最大时间的值(也就是要记录一个最大的key)为最新股价

最大最小值一直用max,min维护是错误的思路,因为股价会波动,不能用历史的最大最小值

错误代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class StockPrice {
    map<int, int> time2price;
    int _max, _min;
public:
    StockPrice() {
        time2price.clear();
        _max = -1;
        _min = (int)1e9;
    }
    
    void update(int timestamp, int price) {
        _max = max(_max, price);
        _min = min(_min, price);
        time2price[timestamp] = price;
    }
    
    int current() {
        return time2price.rbegin()->second;
    }
    
    int maximum() {
        return _max;
    }
    
    int minimum() {
        return _min;
    }
};

正确代码

链接:https://leetcode-cn.com/problems/stock-price-fluctuation/solution/gu-piao-jie-ge-bo-dong-by-leetcode-solut-rwrb/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class StockPrice {
public:
    StockPrice() {
        this->maxTimestamp = 0;
    }
    
    void update(int timestamp, int price) {
        maxTimestamp = max(maxTimestamp, timestamp);
        int prevPrice = timePriceMap.count(timestamp) ? timePriceMap[timestamp] : 0;
        timePriceMap[timestamp] = price;
        if (prevPrice > 0) {
            auto it = prices.find(prevPrice);
            if (it != prices.end()) {
                prices.erase(it);
            }
        }
        prices.emplace(price);
    }
    
    int current() {
        return timePriceMap[maxTimestamp];
    }
    
    int maximum() {
        return *prices.rbegin();
    }
    
    int minimum() {
        return *prices.begin();
    }
private:
    int maxTimestamp;
    unordered_map<int, int> timePriceMap;
    multiset<int> prices;
};

Review

【TED演讲】网络犯罪究竟从何而来?

共享病毒库,共享防护手段,从而让黑客无法攻击下一个受害者,这样就防止了网络犯罪,但是很多公司都是要靠这个赚钱 所以这样的事情应该很难做,他们宁愿成为网络犯罪的共犯,也要自己赚钱,这无可厚非,需要一种好的激励方案

Tips

NFS配置固定端口并设置防火墙规则

Share

docker容器改静态ip

自己网上找了,没有明确的步骤

只知道可以改配置,操作一把,成功

  1. systemctl stop docker
  2. docker info | grep "Docker Root Dir"
  3. vim ${docker_root}/containers/1b1xxxxx/config.v2.json (修改ip)
  4. systemctl start docker