274.
sort一下然后O(nlogn)复杂度的方法挺好写的
复习了一下lower_bound built-in function.
std::vector<
int
>::iterator low =
lower_bound(citations.begin(), citations.end(), citations[i])
int position = low - citations.begin()
121.
easy题,思路直接,但是O(n)不好想。属于小但刁钻的题。暴力的话很容易想到,forloop套forloop就行。O(n)的提示:可以找到循环到i为止的最小值,而nums[i]-最小值一定是目前这个i所能达到的最大profit。
380.
首先注意rand()的应用
其次这道题的要点在于用了map可以解决O(1)插入删除,但getrandom需要在vector里进行,每次map变动vector也要变动过,而vector没有快速的删除。解决办法:map的val用来储存在vec中的位置。
注意一个细节:实现remove的时候,vec.back()在map里的val要变(位置变化)