/**
     * 计算你能获得的最大收益
     *
     * @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;
    }
예제 #2
0
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();
}