【优选算法题练习】day7

news2024/11/26 21:20:39

文章目录

  • 一、35. 搜索插入位置
    • 1.题目简介
    • 2.解题思路
    • 3.代码
    • 4.运行结果
  • 二、69. x 的平方根
    • 1.题目简介
    • 2.解题思路
    • 3.代码
    • 4.运行结果
  • 三、852. 山脉数组的峰顶索引
    • 1.题目简介
    • 2.解题思路
    • 3.代码
    • 4.运行结果
  • 总结


一、35. 搜索插入位置

1.题目简介

35. 搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。
请必须使用时间复杂度为 O(log n) 的算法。
在这里插入图片描述

2.解题思路

3.代码

class Solution {
public:
    int searchInsert(vector<int>& nums, int target) {
        int left = 0, right = nums.size() - 1;
        while(left <= right)
        {
            int mid = left + (right - left) / 2;
            if(nums[mid] < target)
            {
                left = mid + 1;
            }
            else if(nums[mid] > target)
            {
                right = mid - 1;
            }
            else
            {
                return mid;
            }
        }
        return left;
    }
};

4.运行结果

在这里插入图片描述

二、69. x 的平方根

1.题目简介

69. x 的平方根
给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
在这里插入图片描述

2.解题思路

3.代码

class Solution {
public:
    int mySqrt(int x) {
        if(x < 1) return 0;
        int left = 1, right = x;
        while(left < right)
        {
            long long mid = left + (right - left + 1) / 2;
            if(mid * mid <= x)
            {
                left = mid;
            }
            else
            {
                right = mid - 1;
            }
        }
        return left;
    }
};

4.运行结果

在这里插入图片描述

三、852. 山脉数组的峰顶索引

1.题目简介

852. 山脉数组的峰顶索引
符合下列属性的数组 arr 称为 山脉数组 :
arr.length >= 3
存在 i(0 < i < arr.length - 1)使得:
arr[0] < arr[1] < … arr[i-1] < arr[i]
arr[i] > arr[i+1] > … > arr[arr.length - 1]
给你由整数组成的山脉数组 arr ,返回满足 arr[0] < arr[1] < … arr[i - 1] < arr[i] > arr[i + 1] > … > arr[arr.length - 1] 的下标 i 。
你必须设计并实现时间复杂度为 O(log(n)) 的解决方案。
在这里插入图片描述

2.解题思路

3.代码

class Solution {
public:
    int peakIndexInMountainArray(vector<int>& arr) {
        int left = 1, right = arr.size() - 2;
        while(left < right)
        {
            int mid = left + (right - left + 1) / 2;
            if(arr[mid] > arr[mid - 1])//如果mid所处位置是上升的,则我们要在mid + 1~right区间寻找
            {
                left = mid;
            }
            else//如果mid所处位置是下降的,则我们要在left~mid-1区间寻找
            {
                right = mid - 1;
            }
        }
        return left;
    }
};

4.运行结果

在这里插入图片描述


总结

今天是算法练习的第7天。
只要功夫深,铁杵磨成针,继续加油!
题目来源:力扣(LeetCode),著作权归领扣网络所有。
如果本篇文章对你有所启发的话,希望可以多多支持作者,谢谢大家!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/764498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浅谈自动化测试工具 Appium

目录 前言&#xff1a; 一、简单介绍 &#xff08;一&#xff09;测试对象 &#xff08;二&#xff09;支持平台及语言 &#xff08;三&#xff09;工作原理 &#xff08;四&#xff09;安装工具 二、环境搭建 &#xff08;一&#xff09;安装 Android SDK &#xff0…

08 - 线性表的类型定义 - 循环双向链表

双向链表可以分为普通双向链表(前面我们已经学习过了)与循环双向链表。 循环双向链表的定义 循环双向链表就是在双向链表的基础之上,头结点的Prev指向尾结点,尾结点的Next指针则指向头结点,从而形成闭环结构。 内存中的结构 双向链表与循环双向链表的区别 双向链表 …

Vue项目中你是如何解决跨域的呢?

一、跨域是什么 跨域本质是浏览器基于同源策略的一种安全手段 同源策略&#xff08;Sameoriginpolicy&#xff09;&#xff0c;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能 所谓同源&#xff08;即指在同一个域&#xff09;具有以下三个相同点 协议相同&…

微信小程序开发入门指南

微信小程序商城是一种方便快捷的电商平台&#xff0c;让商家能够在微信平台上展示和销售自己的商品。本文将详细介绍如何使用乔拓云平台创建自己的小程序商城。即使是对编程没有任何基础的小白用户&#xff0c;也可以轻松创建自己的微信小程序商城。 第一步&#xff0c;登录乔拓…

上门服务小程序|上门家政小程序开发

随着现代生活节奏的加快和人们对便利性的追求&#xff0c;上门家政服务逐渐成为了许多家庭的首选。然而&#xff0c;传统的家政服务存在着信息不透明、服务质量不稳定等问题&#xff0c;给用户带来了困扰。为了解决这些问题&#xff0c;上门家政小程序应运而生。上门家政小程序…

拓数派荣获 “2023 年杭州市企业高新技术研究开发中心” 认定

近日&#xff0c;拓数派上榜由杭州市科学技术局公布的 “2023 年杭州市企业高新技术研究开发中心名单”&#xff0c;通过专业的技术研发、成果转化和高新技术产业化成绩&#xff0c;获得 “杭州市拓数派数据计算企业高新技术研究开发中心” 认定。 图为&#xff1a;“杭州市拓数…

spring boot 多模块项目非启动模块的bean无法注入(问题记录)

之前有说我搭了一个多模块项目&#xff0c;往微服务升级&#xff0c;注入的依赖在zuodou-bean模块中&#xff0c;入jwt拦截&#xff0c; Knife4j ,分页插件等等&#xff0c;但是启动类在system中&#xff0c;看网上说在启动类上加SpringBootApplication注解默认扫描范围为自己…

【HTML】:超文本标记语言的基础入门元素

目录 1️⃣前言2️⃣概述&#x1f331;什么是HTML&#xff1f;&#x1f331;初步认识HTML 3️⃣了解概念✨基本结构✔️元素&#x1f50b; 标签&#x1f4a1;属性 4️⃣基本内容学习标签特殊字符属性图像标签的属性超链接标签的属性 5️⃣锚点链接6️⃣表格表格标签表格标签的属…

(ceph)资源池poll管理

资源池 Pool 管理 前面的文章中我们已经完成了 Ceph 集群的部署&#xff08;ceph部署: 传送门&#xff09;&#xff0c;但是我们如何向 Ceph 中存储数据呢&#xff1f;首先我们需要在 Ceph 中定义一个 Pool 资源池。Pool 是 Ceph 中存储 Object 对象抽象概念。我们可以将其理解…

oracle 如何连同空表一起导出成dmp的方法

1、oracle导出dmp文件的时候&#xff0c;经常会出现一些空表&#xff0c;没有一并被导出的情况。 执行sql select alter table ||table_name|| allocate extent; from user_tables where num_rows0 or num_rows is null; 新建一个sql窗口&#xff0c;把查询结果的sql&#…

MySQL-DQL-案例

案例 案例1 根据需求完成员工管理的条件分页查询 具体代码 -- 案例1&#xff1a;按需求完成员工管理的条件分页查询 - 根据输入条件&#xff0c;查询第一页数据&#xff0c;每页展示10条记录 -- 输入条件&#xff1a; -- 姓名&#xff1a;张 -- 性别&#xff1a;男 -- 入职时间…

深入解析5G承载网:驱动下一代通信技术的支柱

移动通信技术的不断演进&#xff0c;使得5G承载网成为驱动下一代通信技术发展的关键组成部分。在这个数字化时代&#xff0c;了解5G承载网的作用和特点对于理解现代通信网络的架构至关重要。 1.5G承载网的组成和功能 5G承载网由核心网和边缘计算组成。 其中&#xff0c;核心网…

Python实现HBA混合蝙蝠智能算法优化循环神经网络分类模型(LSTM分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝙蝠算法是2010年杨教授基于群体智能提出的启发式搜索算法&#xff0c;是一种搜索全局最优解的有效方法…

一款好用的被动式信息泄漏检测插件

插件介绍 FindSomething由陌陌安全残笑老哥开发的浏览器扩展&#xff0c;是一款优秀的被动式信息收集工具&#xff0c;用于展示浏览器打开的页面相关的网站资产和敏感信息。 关注【Hack分享吧】公众号&#xff0c;回复关键字【230629】获取下载链接 支持收集的信息类型如下&am…

瑞吉外卖总结

瑞吉外卖总结笔记 环境 SpringBoot、Mybatis-Plus 注意&#xff1a;使用Mybatis-Plus时&#xff0c;属性值要与数据库中的列名一致 静态映射 当将使用SpringBoot整合前端html项目时&#xff0c;需要使用静态资源的映射&#xff0c;否则会出现html页面部分效果无法展示 解…

F#奇妙游(15):优雅的WPF程序

WPF but F# 上一篇&#xff0c;写了一个F#的WPF&#xff0c;所有的东西都是随手写出来的&#xff0c;没有经过详细考虑和设计。就是吧&#xff0c;一点也不优雅……咋们虽然头发不多&#xff0c;但是优雅永不过时&#xff01; 实际上能用的开源UI库&#xff08;F#&#xff0c…

【NLP】多头注意力概念(02)

接上文: 【NLP】多头注意力概念(01) 五、计算注意力 将 Q、K 和 V 拆分为它们的头部后,现在可以计算 Q 和 K 的缩放点积。上面的等式表明,第一步是执行张量乘法。但是,必须先转置 K。 展望未来,每个张量的seq_length形状将通过其各自的张量来识别,以确保清晰…

2023年知识库软件爆火的有哪些?

2023年知识库软件爆火的可能性有很多&#xff0c;以下是一些可能的候选者&#xff1a; 一、Baklib&#xff1a;Baklib是一款新兴的知识库软件&#xff0c;它提供了强大的知识管理和组织功能。它能够帮助用户收集、整理和共享知识&#xff0c;并提供智能搜索和推荐引擎&#xf…

DP1042 国产代替TJA1042 CAN总线收发器接口芯片

5V 供电&#xff0c;IO 口兼容 3.3V&#xff0c;70V 总线耐压&#xff0c;待机模式 CAN FD 总线收发器DP1042是一款应用于 CAN 协议控制器和物理总线之间的接口芯片&#xff0c;可应用于卡车、公交、小汽车、工业控制等领域&#xff0c;支持 5Mbps CAN FD 灵活数据速率&#xf…

使用stata做meta系列三|Meta命令安装

上期小统带大家学习了Meta分析纳排标准确定&#xff0c;这期小统和大家一起学习一下Meta命令安装。 Meta命令安装 Stata安装meta命令包&#xff1a; http://3g.dxy.cn/bbs/topic/34967648 命令&#xff1a; help pr0012 点击 pr0012…… 点击 click here to install 将pro…