leetcode - Search in Rotated Sorted Array

本文详细介绍了二分搜索算法的实现方法,通过一个具体的代码示例展示了如何在一个整数数组中查找特定的目标值。该算法适用于有序数组,并能有效地提高搜索效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 1 class Solution {
 2 public:
 3     int search(int A[], int n, int target) {
 4         // IMPORTANT: Please reset any member data you declared, as
 5         // the same Solution instance will be reused for each test case.
 6         if (n<=0)
 7             return -1;
 8         int left = 0, right = n-1;
 9         int middle;
10         while (left<=right){
11             if (A[left]==target)
12                 return left;
13             if (A[right]==target)
14                 return right;
15             middle = (left+right)/2;
16             if (A[middle]==target)
17                 return middle;
18             if (A[middle]>target){
19                 if (A[right]>target){
20                     if (A[middle]>A[right])
21                         left = middle+1;
22                     else right = middle-1;
23                 }
24                 else right = middle-1;
25             }
26             if (A[middle]<target){
27                 if (A[right]>target)
28                     left = middle+1;
29                 else {
30                     if (A[right]>A[middle])
31                         right = middle-1;
32                     else 
33                         left = middle+1;
34                 }
35             }
36         }
37         return -1;
38     }
39 };

 

 

转载于:https://www.cnblogs.com/zhanghs/p/3409455.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值