2023-06-20:给定一个长度为N的数组arr,arr[i]表示宝石的价值
你在某天遇到X价值的宝石,
X价值如果是所有剩余宝石价值中的最小值,你会将该宝石送人
X价值如果不是所有剩余宝石价值中的最小值,你会将该宝石放到所有宝石的最后
返回把宝石都送人需要多少天
比如arr = [3,1,4,3,1,2]
在第1天,你遇到了价值3的宝石,但是3并不是所有剩余宝石的价值最小值
所以你把3放在了所有宝石的最后,arr = [1,4,3,1,2,3]
在第2天,你遇到了价值1的宝石,1是所有剩余宝石的价值最小值
所以你把价值1的宝石送人,arr = [4,3,1,2,3]
在第3天,你把价值4的宝石放到最后,arr = [3,1,2,3,4]
在第4天,你把价值3的宝石放到最后,arr = [1,2,3,4,3]
在第5天,你送出了价值1的宝石,arr = [2,3,4,3]
在第6天,你送出了价值2的宝石,arr = [3,4,3]
在第7天,你送出了价值3的宝石,arr = [4,3]
在第8天,你把价值4的宝石放到最后,arr = [3,4]
在第9天,你送出了价值3的宝石,arr = [4]
在第10天,你送出了价值4的宝石,宝石已经没有了。
所以返回10。
1 <= N <= 10的5次方,
1 <= 宝石价值 <= 10的9次方。
来自TikTok美国笔试。
答案见文章,全网同名。
相似问题