这题我自己没弄出来,参考了stellalai用户的代码。先翻译一下解法:
对于一个新的数n,我们寻找输入的一系列序号中包括这个数的指数,如果不存在就返回-1。这是依靠二分查找实现的。
找到Index后,我们有3种情况:
①、区间[index]已包含变量,直接输出即可。
②、值可以被合并到区间[index+1],开始改变区间[index+1]
③、值可以被合并到区间[index],改变区间[index]
④、值不能被合并,插入区间(值,值)
最后,插入val后,我们需要检查区间[index]和区间[index+1]是否能被合并。
具体代码如下:
以上。