递增数组题解

递增数组

https://www.nowcoder.com/questionTerminal/d0907f3982874b489edde5071c96754a

因为我们要求得一个单调递增的序列,那么我们如果要选择一个区间的话这个区间必为后缀,不然我们选择一个中间的区间相当于把中间提高了,那么对后面就造成了不利的影响。所以我们只需要看每一个位置i与后面的一个元素i+1的差,位置i的贡献为max(0,array[i]+1-array[i+1])。时间复杂度O(n),空间复杂度O(n)。

class Solution {
public:
    /**
     * 
     * @param array int整型一维数组 array
     * @param arrayLen int array数组长度
     * @return long长整型
     */
    long long IncreasingArray(int* array, int arrayLen) {
        // write code here
        long long ans=0;
        for(int i=0;i<arrayLen-1;i++)
            ans+=max(0,array[i]+1-array[i+1]);
        return ans;
    }
};
全部评论

相关推荐

暴走萝莉莉:这是社招场吧,作为HR说个实话:这个维护关系的意思是要有政府资源,在曾经的工作中通过人脉资源拿下过大订单的意思。这个有相关管理经验,意思也是真的要有同岗位经验。应酬什么的对于业务成交来说就算不乐意也是常态,就是要求说话好听情商高,酒量好。
点赞 评论 收藏
分享
安静的垂耳兔在泡澡:ks已经第八次投递了,它起码挂了还让你再投,不错了
点赞 评论 收藏
分享
评论
6
收藏
分享
牛客网
牛客企业服务