0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言: Leetcode 33搜索旋转排序数组

如意 来源:CSDN 作者:CaspianSea 2020-06-22 08:51 次阅读

假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。

搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。

你可以假设数组中不存在重复的元素。

你的算法时间复杂度必须是 O(log n) 级别。

示例 1:

输入: nums = [4,5,6,7,0,1,2], target = 0

输出: 4

示例 2:

输入: nums = [4,5,6,7,0,1,2], target = 3

输出: -1

解法1:如果是 left 《 right,就是有序数组,用二分来处理;否则,target可能落在 left~mid和mid~right两个区间内。

如果 left 《= target 《=mid 或者 left 》 mid 并且 target 》= left 或者 target 《= mid,则落在左区间。类似的可得出落在右区间的条件。

C语言: Leetcode 33搜索旋转排序数组

思路2: 先考虑target落在 left~mid的情况,然后再考虑落在 mid~right的情况。而每个区间又要考虑是不是有序的。

C语言: Leetcode 33搜索旋转排序数组

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7604

    浏览量

    136764
  • leetcode
    +关注

    关注

    0

    文章

    20

    浏览量

    2318
收藏 人收藏

    评论

    相关推荐

    C语言数组详解

    介绍C语言数组的知识点。
    的头像 发表于 05-19 10:15 6318次阅读

    帮忙看看:数字排序数组

    如何按照图中数字排序数组簇~~谢谢
    发表于 06-12 10:45

    C语言入门教程-数组

    数组 本节我们将用C写一个小程序随机生成10个数,并对其进行排序。我们将使用一种新的变量结构
    发表于 07-29 11:03 804次阅读

    C语言教程之希尔排序

    C语言教程之希尔排序,很好的C语言资料,快来学习吧。
    发表于 04-22 11:06 0次下载

    C语言教程之冒泡排序

    C语言教程之冒泡排序,很好的C语言资料,快来学习吧。
    发表于 04-22 11:06 0次下载

    C语言教程之选择排序

    C语言教程之选择排序,很好的C语言资料,快来学习吧。
    发表于 04-22 11:06 0次下载

    C语言教程之归并排序

    C语言教程之归并排序,很好的C语言资料,快来学习吧。
    发表于 04-22 11:06 0次下载

    C语言教程之对数组进行升序和降序排序

    C语言教程之对数组进行升序和降序排序,很好的C语言资料,快来学习吧。
    发表于 04-25 16:09 0次下载

    C语言leetcode 35搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
    的头像 发表于 06-22 08:40 1630次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>leetcode</b> 35<b class='flag-5'>搜索</b>插入位置

    C语言LeetCode 153寻找旋转排序数组中的最小值

    假设按照升序排序数组在预先未知的某个点上进行了旋转
    的头像 发表于 06-22 08:59 1844次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>:<b class='flag-5'>LeetCode</b> 153寻找<b class='flag-5'>旋转</b><b class='flag-5'>排序数组</b>中的最小值

    C语言总结_数组全方位练习

    C语言数组的练习题:涉及到数组插入、数组删除、数组下标数据的左移右移、
    的头像 发表于 08-14 09:34 898次阅读

    C语言总结_数组知识

    当前文章复盘C语言数组数组定义规则、数组空间类型、数组下标使用、
    的头像 发表于 08-14 09:38 1305次阅读

    C语言_数组的查找、替换、排序、拼接

    这篇文章主要是总结C语言的位运算几个实战例子,接着介绍数组的基本定义用法、数组排序、插入、拼接、删除、字符串查找替换等。
    的头像 发表于 08-14 09:48 2576次阅读

    C语言如何创建数组

    C语言是一种非常强大和灵活的编程语言,它提供了若干数据类型来存储和操作数据。其中之一就是数组,它可以用来存储一系列具有相同数据类型的元素。本文将详细介绍如何在
    的头像 发表于 11-24 10:08 1907次阅读

    c语言数组怎么定义

    C语言中,数组是一种用来存储相同类型元素的数据结构。它可以存储多个元素,并通过一个共同的名称来引用这些元素。数组是一种很重要的数据结构,可以用于解决很多实际的问题。 在
    的头像 发表于 11-24 10:11 3071次阅读