首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
在转动过的有序数组中寻找目标值
[编程题]在转动过的有序数组中寻找目标值
热度指数:34766
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 64M,其他语言128M
算法知识视频讲解
给出一个转动过的有序数组,你事先不知道该数组转动了多少
(例如,0 1 2 4 5 6 7可能变为4 5 6 7 0 1 2).
在数组中搜索给出的目标值,如果能在数组中找到,返回它的索引,否则返回-1。
假设数组中不存在重复项。
示例1
输入
[1],0
输出
-1
示例2
输入
[3,2,1],1
输出
2
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(220)
分享
提交结果有问题?
108个回答
12篇题解
开通博客
华科不平凡
发表于 2020-09-03 17:47:56
对旋转数组进行均等划分后,总有一边是有序的,如: 10 11 12 13 14 15 1 2 3 10 11 15 1 2 3 4 5 6 7 8 我们定位到有序的一边后,对比target与有序子数组的左右边界,就可以作出搜索左侧还是右侧的决策。 代码如下: 第16行必须是<=,不能是&
展开全文
草狐想
发表于 2021-01-04 22:33:38
思路: 1.先二分法找到转动的点, A[mid]和A[0] 做比较大于等于 就说明落到了交接点左边,这时移动 s 指针让mid 向右边靠,反则移动e 指针让 mid向左靠,最终 s 会落在交接点右边, e 指针会落在交界的 左边开始:结束: 2.这样就得到2个有序数组了,接着就是一个二分查
展开全文
yjiewei
发表于 2020-11-30 10:28:05
我的空间复杂度是O(N) 没有用到转动的特点 import java.util.*; public class Solution { /** * * @param A int整型一维数组 * @param target int整型 * @retu
展开全文
牛客4913417
发表于 2021-02-08 21:11:37
public int search (int[] A, int target) { if(A==null) return -1; int left = 0; int right = A.length-1; //不存在重复
展开全文
CroMarmot
发表于 2022-02-05 18:42:01
在转动过的有序数组中寻找目标值(二分) 题意 求一个转动过的有序数组中, 找到值的索引 思路分析 转动的分界点性质 因为数组转动过,所以转动的位置一定是左侧大于右侧,而剩余的部分依然保持单调有序 分治 因为这样的分界点至多有一个考虑这个分界点的位置, [l...m][m+1...r] 如果分界点在左
展开全文
前端小帅
发表于 2021-04-06 16:32:09
/** * * @param A int整型一维数组 * @param target int整型 *&nbs
展开全文
whoway
发表于 2021-03-11 12:54:25
本题的调试有点问题。。 一、暴力『不是最优』 class Solution { public: /** * * @param A int整型一维数组 * @param n int A数组长度 * @param target int整型
展开全文
牛客493206717号
发表于 2021-03-08 22:22:34
题目描述给出一个转动过的有序数组,你事先不知道该数组转动了多少(例如,0 1 2 4 5 6 7可能变为4 5 6 7 0 1 2).在数组中搜索给出的目标值,如果能在数组中找到,返回它的索引,否则返回-1。假设数组中不存在重复项。 解法 //解法:二分查找 // 先根据 nums[
展开全文
飘过的小牛
发表于 2021-03-14 13:15:58
这个题和剑指 Offer 上旋转数组的题有点像,但是不一样,因为剑指 offer 明确了是一个递增排序的数组,如果我们明确了递增的话就能取到 mid,然后通过 mid 与 left 以及 right 的相对大小来判断接下来的走向,但是现在的问题是这个题没有明确。首先分析本题要考察什么:数据结构数组,
展开全文
馒头2020
发表于 2021-04-07 10:57:18
题目描述 描述转载自力扣《33. 搜索旋转排序数组》整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., n
展开全文
问题信息
数组
二分
难度:
108条回答
220收藏
26301浏览
热门推荐
通过挑战的用户
月亮不在家
2022-10-27 20:58:28
牛客62707...
2022-09-27 11:38:33
牛客47907...
2022-09-13 18:26:51
牛客31468...
2022-08-09 10:21:41
MuOvO
2022-08-01 17:44:31
相关试题
分组
基础数学
二分
评论
(11)
航海
排序
思维
二分
评论
(1)
远亲不如近邻
排序
二分
评论
(13)
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
关于分段系统与分页系统的区别,描述...
操作系统
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; public class Solution { /** * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ public int search (int[] A, int target) { // write code here } }
class Solution { public: /** * * @param A int整型一维数组 * @param n int A数组长度 * @param target int整型 * @return int整型 */ int search(int* A, int n, int target) { // write code here } };
# # # @param A int整型一维数组 # @param target int整型 # @return int整型 # class Solution: def search(self , A , target ): # write code here
/** * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ function search( A , target ) { // write code here } module.exports = { search : search };
# # # @param A int整型一维数组 # @param target int整型 # @return int整型 # class Solution: def search(self , A , target ): # write code here
package main /** * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ func search( A []int , target int ) int { // write code here }
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # @param A int整型一维数组 # @param target int整型 # @return int整型 # class Solution def search(A, target) # write code here end end
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ def search(A: Array[Int],target: Int): Int = { // write code here } }
object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ fun search(A: IntArray,target: Int): Int { // write code here } }
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ public int search (int[] A, int target) { // write code here } }
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ export function search(A: number[], target: number): number { // write code here }
public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ func search ( _ A: [Int], _ target: Int) -> Int { // write code here } }
struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * @param A int整型一维数组 * @param target int整型 * @return int整型 */ pub fn search(&self, A: Vec
, target: i32) -> i32 { // write code here } }
[1],0
-1
[3,2,1],1
2