LCR 172.统计目标成绩的出现次数

news/2025/2/15 22:12:35/

​​题目来源:

        leetcode题目,网址:LCR 172. 统计目标成绩的出现次数 - 力扣(LeetCode)

解题思路:

        两次二分,一次寻找首次出现的位置,一次寻找最后一次出现的位置。

解题代码:

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

总结:

        官方题解也是两次二分,不过他利用变量将写两个二分函数合为一个。



http://www.ppmy.cn/news/1152722.html

相关文章

SAP报错CX_SY DYN CALL PARAM MISSING

DYN CALL METH PARAM MISSING CX_SY DYN CALL PARAM MISSING 在 ABAP 中&#xff0c;当你定义一个方法时&#xff0c;可以选择将方法的参数标记为可选&#xff08;可选参数&#xff09;或必需&#xff08;必需参数&#xff09;。如果你不勾选可选参数选项&#xff0c;那么该参…

在网络安全、爬虫和HTTP协议中的重要性和应用

1. Socks5代理&#xff1a;保障多协议安全传输 Socks5代理是一种功能强大的代理协议&#xff0c;支持多种网络协议&#xff0c;包括HTTP、HTTPS和FTP。相比之下&#xff0c;Socks5代理提供了更高的安全性和功能性&#xff0c;包括&#xff1a; 多协议支持&#xff1a; Socks5代…

flutter 网络图片封装

可自定义加载时占位图片和加载失败时展示的图片 class ImageBuildView extends StatelessWidget {String? url;double radius;double? width;double? height;String placeholder;ImageBuildView({super.key,this.url,this.width,this.height,this.radius 50,this.placehol…

Git 速通以及常用指令!!

参考视频 01 - Git - 教程简介_哔哩哔哩_bilibili 在需要使用git的文件夹打开git bash&#xff0c;指令如下↓ 当然图形化界面也很香&#xff01;github desktop也很舒服&#xff01; 查看文件 版本号 git cat-file -p 版本号 仓库操作 在当前文件夹下创建git仓库 git ini…

Linux下将驱动编译进内核

在开发的过程中&#xff0c;一般都是将驱动编译成模块&#xff0c;然后将其发送到开发板加载驱动进行功能验证&#xff0c;驱动的功能验证没有问题后就可以将其编译进内核了。本文将介绍如何把上一篇文章Linux下设备树、pinctrl和gpio子系统、LED灯驱动实验中的LED驱动编译到内…

Namomo Summer Camp 23 Day 1

Namomo Summer Camp 23 Day 1 - Virtual Judge B - Brexiting and Brentering AC代码: #include<bits/stdc.h> #define endl \n //#define int long long using namespace std; string s; void solve() {cin>>s;int x-1;for(int is.size()-1;i>0;i--){if(s[i…

Spring Cloud Gateway 搭建网关

新建一个module添加依赖&#xff1a; <!--Spring Cloud Gateway依赖--> <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency><!-- nacos客户端依赖…

如何学习vue的工作原理及为何要创建vue框架

什么是Vue.js&#xff1f; Vue.js是一种流行的JavaScript框架&#xff0c;用于构建用户界面。它的目标是帮助开发者构建交互式的单页面应用&#xff08;SPA&#xff09;和动态Web应用。Vue提供了一种响应式的数据绑定、组件化的开发模式以及一组强大的工具&#xff0c;使前端…