首页
题库
面试
求职
学习
竞赛
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收藏
27046浏览
热门推荐
通过挑战的用户
月亮不在家
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
相关试题
远亲不如近邻
排序
二分
评论
(13)
分组
基础数学
二分
评论
(11)
航海
排序
思维
二分
评论
(1)
下列哪些操作会使线程释放锁资源?
Java
评论
(1)
计算分类模型的性能指标
机器学习
评论
(0)
在转动过的有序数组中寻找目标值
扫描二维码,关注牛客网
意见反馈
下载牛客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