502. IPO

    xiaoxiao2021-03-25  68

    这是一道按常规方法做就会超时的题目,所以我一开始就舍弃了多层循环的方法。

    我选择对Profits进行排序,这样就可以从最大的利润开始访问,以求最大化。但是这样就会出现Profits和Capital的顺序无法对应,于是我就采用排序前将Profits的序号(也就是Capital的序号)加到Profits的50000倍里的方法,这样Profits的元素值对50000求余之后的结果就是它排序前的序号(也就是Capital的序号)。之后的解决便十分顺利了。

    还有一个值得注意的点是,“The answer is guaranteed to fit in a 32-bit signed integer”,所以用来装Profits的50000倍加序号的vector的类型应该是unsigned int。

    以下是代码:

    转载请注明原文地址: https://ju.6miu.com/read-38163.html

    最新回复(0)