牛客: BM17 二分查找-I

news/2024/7/5 3:26:45

牛客: BM17 二分查找-I

文章目录

  • 牛客: BM17 二分查找-I
  • 题目描述
  • 题解思路
  • 题解代码

题目描述

描述

题解思路

一个左端点, 一个右端点, 循环直到左右端点交叉, 取左右端点的中点

若中点的值大于目标值, 意味着目标值只可能在中点的左边, 所以右端点变为中点的前一个位置

若中点的值小于目标值, 意味着目标值只可能在中点的右边, 所以左端点变为中点的后一个位置

若中点的值等于目标值, 则返回当前中点

循环结束还未找到, 意味着不存在目标值, 返回-1

题解代码

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @param target int整型 
 * @return int整型
*/
func search( nums []int ,  target int ) int {
    // write code here
    left, right := 0, len(nums) - 1

    for left <= right {
        mid := (left + right) >> 1
        num := nums[mid]
        if num > target {
            right = mid - 1
        } else if num < target {
            left = mid + 1
        } else {
            return mid
        }
    }

    return -1
}

http://lihuaxi.xjx100.cn/news/1559433.html

相关文章

leetcode 94.二叉树的中序遍历(非递归和递归遍历)

94. 二叉树的中序遍历 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), righ…

974. 和可被 K 整除的子数组

974. 和可被 K 整除的子数组 C代码&#xff1a;哈希表前缀和 typedef struct{int val;int cnt;UT_hash_handle hh; } HashTable;int subarraysDivByK(int* nums, int numsSize, int k){HashTable* head NULL;HashTable* out NULL;int sum 0;int cnt 0;out (HashTable*)ma…

卡尔曼滤波(Kalman Filter)C#测试

一、操作过程 刚学了一下卡尔曼滤波&#xff0c;具体原理还没细看&#xff0c;大致过程如下 分为两步&#xff0c;第一步Predict&#xff0c;以下两个公式 第二步Correct&#xff0c;以下三个公式 公式看起来很复杂&#xff0c;其中是我们要处理的数据&#xff0c; 是滤…

正则表达式新解

文章目录 是什么&#xff1f;正则用法匹配单个字符匹配一组字符其他元字符核心函数 贪婪匹配和非贪婪匹配正则练习 是什么&#xff1f; 正则表达式(Regular Expression)是一种文本模式&#xff0c;包括普通字符&#xff08;例如&#xff0c;a 到 z 之间的字母&#xff09;和特殊…

离散数学之 一阶逻辑等值演算与推理

一阶逻辑等值式与置换规则 基本等值式 这里用到了量词辖域的收缩 未完待续

从电大搜题到上海开放大学,广播电视大学引领学习新风尚

近年来&#xff0c;随着信息技术的飞速发展&#xff0c;互联网的普及和应用成为了我们生活中不可或缺的一部分。而在大学学习领域&#xff0c;电大搜题微信公众号应运而生&#xff0c;为广大学子提供了便捷的学习资源和交流平台。在这个信息高速发展的时代&#xff0c;上海开放…

滚雪球学Java(19):Java中的内存机制

&#x1f3c6;本文收录于「滚雪球学Java」专栏&#xff0c;专业攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎大家关注&&收藏&#xff01;持续更新中&#xff0c;up&#xff01;up&#xff01;up&#xff01;&#xf…

OpenCV实现图像去水印功能(inpaint)

水印定位 需要根据图像特征获取水印的位置。 如图所示&#xff0c;图像左下角、右下角有水印。第一步&#xff0c;我们首先得定位水印所在位置。 Mat gray;cvtColor(src, gray, COLOR_BGR2GRAY);//图像二值化&#xff0c;筛选出白色区域部分Mat thresh;threshold(gray, thres…