此功能是O(n)还是O(logn)? for循环仅通过数组的一半迭代,但每次检查两端

发布于 2025-02-04 09:57:13 字数 415 浏览 2 评论 0原文

这只是一个数组,它遍历数组,检查numS [i]是否大于nums [i -1]和nums [i+1]

for (int i = 1; i < nums.size() / 2; ++i) {
    if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
        return i;
    }
    
    if (nums[nums.size() - i - 1] > nums[nums.size() - i] && 
        nums[nums.size() - i - 1] > nums[nums.size() - i - 2]) {
        return nums.size() - i - 1;
    }
}

this is just an array and it traverses the array checking if the nums[i] is greater than both nums[i - 1] and nums[i+1]

for (int i = 1; i < nums.size() / 2; ++i) {
    if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
        return i;
    }
    
    if (nums[nums.size() - i - 1] > nums[nums.size() - i] && 
        nums[nums.size() - i - 1] > nums[nums.size() - i - 2]) {
        return nums.size() - i - 1;
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文