/** * 计算你能获得的最大收益 * * @param prices Prices[i]即第i天的股价 * @return 整型 */ int calculateMax(vector<int> prices) { vector<int> leftToRight(prices.size(),0); int minLeft = 0; for(int i=1;i<prices.size();i++){ // From left to right if(prices[i]>prices[i-1]){ leftToRight[i] = std::max(leftToRight[i-1],prices[i]-prices[minLeft]); } else{ leftToRight[i] = leftToRight[i-1]; if(prices[i]<prices[minLeft]){ minLeft = i; } } } vector<int> rightToLeft(prices.size(),0); int maxRight = prices.size()-1; for(int i=prices.size()-2;i>=0;i--){ if(prices[i]<prices[i+1]){ rightToLeft[i] = std::max(prices[maxRight]-prices[i],rightToLeft[i+1]); }else{ rightToLeft[i] = rightToLeft[i+1]; if(prices[i]>prices[maxRight]){ maxRight = i; } } } int ret=0; for(int i=0;i<prices.size();i++){ ret = max(leftToRight[i]+rightToLeft[i],ret); } return ret; }
void SpiLcd::begin(uint8_t cols, uint8_t lines) { _numlines = lines; _currline = 0; _currpos = 0; // Set all outputs of shift register to low, this turns the backlight ON. _spiByte = 0x00; spiOut(); // The following initialization sequence should be compatible with: // - Newhaven OLED displays // - Standard HD44780 or S6A0069 LCD displays delayMicroseconds(50000); // wait 50 ms just to be sure that the lcd is initialized write4bits(0x03); //set to 8-bit delayMicroseconds(50000); // wait > 4.1ms write4bits(0x03); //set to 8-bit delayMicroseconds(1000); // wait > 100us write4bits(0x03); //set to 8-bit delayMicroseconds(50000); // wait for execution write4bits(0x02); //set to 4-bit delayMicroseconds(50000); // wait for execution command(0x28); // set to 4-bit, 2-line clear(); // display clear // Entry Mode Set: leftToRight(); noAutoscroll(); home(); //noCursor(); display(); }