华为OD机试真题 JavaScript 实现【快速寻找某字符】【牛客练习题】

news/2024/6/17 13:44:45

在这里插入图片描述

一、题目描述

给定一个一个目标值 target和一个 元素升序的无重复数字字符串 ,写一个函数搜索 字符串 中的 target,如果目标值存在返回下标(下标从 0 开始),否则返回 -1。

二、输入描述

第一行输入一个目标值target。

第二行输入一个逗号隔开的字符串。

三、输出描述

输出target在数组中的下标。

四、解题思路

  1. 读取输入的目标值 target 和逗号隔开的字符串 a;
  2. 使用 split 方法将字符串 a 按逗号分割为字符串数组 arr;
  3. 使用流操作将字符串数组转换为整数数组 nums;
  4. 初始化左指针 l 为 0,右指针 r 为 nums 数组的长度减 1;
  5. 使用二分查找的思想,在循环中判断是否找到目标值:
    • 计算中间元素的下标 m,如果 nums[m] 等于 target,则返回 m;
    • 如果 nums[m] 大于 target,说明目标值在左区间,更新右指针 r 为 m - 1;
    • 如果 nums[m] 小于 target,说明目标值在右区间,更新左指针 l 为 m + 1;
  6. 如果循环结束仍未找到目标值,则返回 -1;
  7. 在主函数中,调用 search 函数进行搜索并输出结果;

五、JavaScript算法源码

function search(target, str) {
    const nums = str.split(",").map(Number);
    let left = 0;
    let right = nums.length - 1;

    while (left <= right) {
        const mid = Math.floor((left + right) / 2);
        if (nums[mid] === target) {
            return mid;
        } else if (nums[mid] > target) {
            right = mid - 1;
        } else {
            left = mid + 1;
        }
    }

    return -1;
}

六、效果展示

1、输入

12
1,5,9,12,16

2、输出

3

3、思路

一般这种情况,通常采用二分查找效率更高。

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述


http://www.niftyadmin.cn/n/419769.html

相关文章

图论算法 --Dijkstra

当谈到计算机科学时&#xff0c;算法是一个重要的话题&#xff0c;因为它们能帮助解决很多问题。而有些算法&#xff0c;其高效性和惊人表现&#xff0c;令人感到惊艳。一起来分享一下你认为令人惊艳的高效算法吧&#xff01; Dijkstra算法 一、你在工作和学习中用到过哪些惊艳…

人工蜂群算法(Artificial Bee Colony (ABC) Algorithm,附简单案例及详细matlab源码)

作者&#xff1a;非妃是公主 专栏&#xff1a;《智能优化算法》 博客地址&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录 专栏推荐一、人工蜂群算法二、伪代码三…

彻底关闭 Win10 系统自动更新【四大步骤】

Windows 10 的自动更新非常顽固&#xff0c;多用户在网上试了各种关闭win10自动更新的方法&#xff0c;刚开始看着好像是关闭更新了&#xff0c;可没过多久系统就又开始自动更新了。今天笔者就来教大家如何彻底关闭win10自动更新&#xff0c;该方法亲测有效。 一、禁用 Window…

v-if和v-show与v-if和v-for之间的优先级问题

v-if和v-show之间的优先级问题 关于这个问题&#xff0c;我们首先需要知道的是v-if和v-show都是如何工作的&#xff0c;只有深入了解了两者的运行原理&#xff0c;才能正确的认识到他们之间的优先级问题。 v-if的工作原理 v-if当且仅当初次渲染和数据发生变化时才起效&#…

数字图像处理与Python实现-图像增强经典算法汇总

图像增强经典算法汇总 文章目录 图像增强经典算法汇总1、像素变换2、图像逆变换3、幂律变换4、对数变换5、图像均衡化6、对比度受限自适应直方图均衡(CLAHE)7、对比度拉伸8、Sigmoid校正9、局部对比度归一化10、总结本文将对图像增强经典算法做一个简单的汇总。图像增强的经典…

【Python小技巧】更换python版本解决了plt.show()不显示图像的问题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、df.plot() 显示不出图像&#xff1f;二、换个python版本问题解决总结 前言 from matplotlib import pyplot as plt kdata.plot(xtrade_time, y[close,BOLL…

【大学计算机技术】测试 5

文章目录 选择题 选择题 计算机操作系统是( )。 A. 一种使计算机便于操作的硬件设备 B. 计算机的操作规范 C. 计算机系统中必不可少的系统软件 D. 对源程序进行编辑和编译的软件 正确答案&#xff1a; C 计算机操作系统的主要功能是( )。 A. 对源程序进行翻译 B. 对计算机的所…

sql 三范式

范式&#xff1a;英文名称是 Normal Form&#xff0c;它是英国人 E.F.Codd&#xff08;关系数据库的老祖宗&#xff09;在上个世纪70年代提出关系数据库模型后总结出来的&#xff0c;范式是关系数据库理论的基础&#xff0c;也是我们在设计数据库结构过程中所要遵循的规则和指导…