栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[解题报告]【第30题】给定 n 个元素的升序整型数组,再给出一个值 target,求实现一个函数查找 nums 中 target 的下标

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[解题报告]【第30题】给定 n 个元素的升序整型数组,再给出一个值 target,求实现一个函数查找 nums 中 target 的下标


全文目录
  • ☘前言☘
  • 主要知识点
    • 二分查找
  • 课后习题
    • 704. 二分查找
  • 写在最后


☘前言☘

今天是c语言基础打卡的第30天,今天这些题还是有点意思的。
相关链接:
【第30题】给定 n 个元素的升序整型数组,再给出一个值 target,求实现一个函数查找 nums 中 target 的下标

全文大约阅读时间: 10min

六作者简介:一个从工业设计改行学嵌入式的年轻人
✨联系方式:2201891280(QQ)


主要知识点 二分查找

在有序数组查找元素的时候,可以每次查看中间的元素值,根据中间元素的值缩小查找范围,是为二分。

int search(int n, int *nums, int target) {
    int l = 0, r = n - 1;                // 初始值
    while(l <= r) {                      // 查找跳出条件
        int mid = (l + r) >> 1;          // 其实就是中间位置
        if(nums[mid] == target) {   
            return mid;                  // 找到元素
        }else if(target > nums[mid]) {
            l = mid + 1;                 // 缩小范围
        }else if(target < nums[mid]) {
            r = mid - 1;                 // 缩小范围
        }
    }
    return -1;                           // 没找到
}

课后习题 704. 二分查找

704. 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

解题思路

按照二分思想写就完事了,完全一样

int search(int* nums, int numsSize, int target){
    int low = 0,high = numsSize - 1;
    while(low <= high){
        int mid = (low + high)/2;
        if(nums[mid] == target)   return mid;
        else if(nums[mid] > target) high = mid-1;
        else                        low = mid + 1;
    }
    return -1;
}

写在最后

最近考试,题目还好不难,不然真的是很难坚持下去呀。大家一起加油。这个c语言打卡也是从之前的几十人到现在就十几个人了0.0

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/630631.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号