数字在排序数组中出现的次数

AI 模型训练核心方法论:零基础也能落地的 8 个关键阶段 本文是为 AI 零基础学习者打造的模型训练入门指南,以生活化语言拆解核心概念,规避专业术语壁垒。内容先通俗阐释模型训练、监督学习、数据集划分等基础概念,再按问题定义、数据准备、模型选择、环境搭建、训练、评估、调参、部署 8 个阶段,拆解完整训练流程,搭配 PyTorch 代码示例与实战案例,同时提供资源预算、常见问题解决方案及学习路径。指南强调数据的核心重要性,推荐新手优先使用迁移学习和免费 GPU 资源,兼顾理论与实操,帮助学习者快速上手,避开训练误区,独立完成从模型搭建到部署的全流程。 阅读详情
题目:
统计一个数字在排序数组中出现的次数。例如输入排序数组{1, 2, 3, 3, 3, 3, 4, 5}和数字3,由于3在这个数组中出现了4次,因此输出4。

关键词:
二分查找

class Solution
{
public:
    int GetNumberOfK( vector<int> data, int k )
    {
        int number = 0;
        if ( data.empty() )
            return 0;
        int first = GetFirstK( data, k, 0, data.size()-1 );
        int last = GetLastK( data, k, 0, data.size()-1 );

        if ( first > -1 && last > -1 )
            number = last - first + 1;
        return number;
    }

    int GetFirstK( vector<int> data, int k, int start, int end )
    {
        if ( start > end )
            return -1;
        int mid = ( start + end ) / 2;
        if ( data[mid] == k )
        {
            if ( (mid > 0 && data[mid-1] != k) || mid == 0 )
                return mid;
            else
                end = mid-1;
        }
        else if ( data[mid] < k )
        {
            start = mid+1;
        }
        else 
            end = mid-1;
        return GetFirstK( data, k, start, end );
    }

    int GetLastK( vector<int> data, int k, int start, int end )
    {
        if ( start > end )
            return -1;
        int mid = ( start + end ) / 2;
        if ( data[mid] == k )
        {
            if ( (mid < data.size()-1 && data[mid+1] != k) || mid == data.size()-1 )
                return mid;
            else 
                start = mid+1;
        }
        else if ( data[mid] < k )
        {
            start = mid+1;
        }
        else 
        {
            end = mid-1;
        }
        return GetLastK( data, k, start, end );
    }
};

int main( void )
{
    Solution sos;
    vector<int> data = { 1, 2, 3, 3, 3, 3, 4, 5 };
    cout << sos.GetNumberOfK( data, 3 ) << endl;
    return 0;
}
HighTec安装使用 阅读详情

相关推荐

【Sentaurus TCAD仿真】几种基础操作

当内存不足时,没必要删除整个Project,只需要 Clean up 节点信息即可。因为占用内存的主要部分是。文件数据,Command文件是不占用多少内存的,下次需要此工程仿真结果重新运行即可。右击可以对该工程进行剪切、复制、删除、重命名等操作。当节点号有时候排序混乱的时候,我们需要重新编排节点号。此时左侧工具栏就能看见我们新建的这个工程。运行节点时不同的颜色代表目前的状态。在这个地方添加要使用的工具。这个时候需要的工具就建好了。然后选择需要使用的工具。我们需要保存这个工程。

qq_45746744的博客 1万+

在排序数组中找出给定数字出现的次数

例如在数据【1,2,3,3,3】中找出3出现的次数 1.利用二分查找的方法 2.确定最先出现的位置的下标left与最后出现的下标right的值 //二分查找拓展款 #include<iostream> #include<vector> using namespace std; //获取k第一次出现的下标 int getLower(vector<int> data,int k){ int start = 0,end = data.size()-

weixin_42145502的博客 479

我爬取了某非法网贷后台系统数据,终于知道什么叫做利滚利滚利滚利了

我爬取了非法贷款的后台网站!

weixin_44042821的博客 2881

算法—数字在排序数组中出现的次数

题目 统计一个数字在排序数组中出现的次数。 分析 第一反应是用HashMap记录下数组中每个数字,和他们出现的次数,最后返回数字k的次数即可。 然而如果面试考到这个题的话,既然说了是排序数组,面试官应该不是想考遍历这么简单,应该是考“二分查找”的。 所以,此题应该用“二分查找”找到k第一次出现的位置,和k最后一次出现的位置,然后返回lastK-firstK+1。 代码1 import java.util.HashMap; public class Solution { public int Get

shengpeizhu的博客 318

别再只盯着版图画了!聊聊CMOS工艺里那个‘看不见的手’:STI应力(LOD效应)对模拟电路的实际影响

本文深入探讨了CMOS工艺中STI应力(LOD效应)对模拟电路设计的实际影响,揭示了这一隐形变量如何导致电流镜匹配偏差等常见问题。通过分析应力产生的物理机制、空间分布特性,以及提供伪器件设计、版图布局优化等实用解决方案,帮助工程师有效管理STI应力效应,提升电路性能。文章还探讨了FinFET工艺下的新挑战及机器学习在应力优化中的应用前景。

weixin_42656416的博客 359

IEEE Transaction期刊模板使用注意事项

本文将总结使用IEEE Transactions系列期刊的投稿模板时的一些注意事项,包括模板本身的使用规范、参考文献的正确格式等其他内容。

weixin_39529207的博客 2万+

剑指offer-统计排序数组中某数字出现的次数

/******************************************************************* Copyright(c) 2016, Tyrone Li All rights reserved. *******************************************************************/ // 作者:TyroneLi // /* Q: 数字在排序数组中出现的次数: 统计一个数字在排序数组中出..

OliverkingLi的博客 345

OpenClaw人人养虾:接入Matrix

Matrix 是一个开放的去中心化通讯协议(Decentralized Communication Protocol),任何人都可以搭建自己的 Homeserver(家服务器)并与全球 Matrix 网络互联。OpenClaw 通过 Matrix Client-Server API 实现接入。

王国平的博客 528

《剑指Offer》面试题:统计一个数字在排序数组中出现的次数

题目 题目描述: 统计一个数字在排序数组中出现的次数。 输入: 每个测试案例包括两行: 第一行有1个整数n,表示数组的大小。1<=n <= 10^6。 第二行有n个整数,表示数组元素,每个元素均为int。 第三行有1个整数m,表示接下来有m次查询。1<=m<=10^3。 下面有m行,每行有一个整数k,表示要查询的数。 输出: 对应每个测试案例

wojiushimogui的博客 2382

用 SemanticObject 把字段变成可点击链接:Fiori Elements Navigation Using a Link 的工程化实践

SAP Fiori elements 通过 Common.SemanticObject 注解可将字段转为可点击链接,实现应用间跳转。当源字段名与目标属性名不一致时,需使用 Common.SemanticObjectMapping 进行映射。该功能依赖 Fiori Launchpad 的目标映射配置,确保正确解析 semantic object + action 并传递参数。常见误区包括未配置目标映射或字段映射错误,需逐一检查语义标注、intent 解析和参数传递链路。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 272

高空抛物监控系统:基于YOLOv8的轨迹追踪与可视化系统

本文详细介绍了一种基于YOLOv8深度学习模型的高空抛物监控系统,该系统能够实时检测并追踪高层建筑抛掷物的运动轨迹。文章包含完整的系统设计思路、算法实现细节、数据集构建方法以及基于PyQt5的可视化界面开发过程。我们提供了完整的Python实现代码,并讨论了系统的性能优化策略和实际部署考量。此外,我们还推荐了几个公开可用的高空抛物数据集,并详细分析了系统的应用前景和技术挑战。

YOLO 446

统计一个数字在排序数组中出现的次数。

package June; public class 统计数在排序数组中出现次数 { public int GetNumberOfK(int[] array, int k) { /* //最简单,最没效率算法,一次循环遍历 int count=0; for(int i=0;i<array.length;i++){ if(array[i]==k){ count++...

记录个人学习笔记总结,遇见问题等 2931

超级全的PCB LAYOUT高速信号走线指南——简化应用版

在PCB Layout中,几乎涵盖了所有的高速信号走线指南。包括了TF/SD、HDMI、LVDS、DVP、eDP、MIPI、USB2.0、USB3.0、MAC、BT.1120、PCIE高速信号等等。此版本为简化版。

bhxc809751502的博客 8550

数字在排序数组中出现的次数 java

题目描述 统计一个数字在排序数组中出现的次数。 分析;既然输入的数组是排序的,那么我们很自然的就能想到用二分查找算法。public class Main { public static void main(String[] args) { int[] array={1,3,3,3,3,4,5}; int k=6; System.out.println(GetNumberO

史迪阳的博客 2663

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

统计一个数字在排序数组中出现的次数

题目描述 统计一个数字在排序数组中出现的次数。 因为是排序好的,所以利用快排的原理,查找,不过这里要稍微修改一下,使得可以查询一个double类型的数据。 import java.util.Arrays; public class Solution { public int GetNumberOfK(int [] array , int k) { return binaryS...

Medlen 1968

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数组之数字在排序数组中出现的次数

1.本题知识点    二分查找 2. 题目描述   统计一个数字在排序数组中出现的次数。 3. 思路    一搬情况下,排序数组中的查找都可以通过二分查找来解决。   ① 通过二分查找查找k,分别找到第一次出现的位置和最后一次出现的索引位置。   ② 通过k出现的第一和最后的位置直接计算出现次数即可,last - first +1。   ③ 二分值mid的三种情况: mid > k ,k出...

守得云开见月明 363

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

37、数字在排序数组中出现的次数

题目描述 统计一个数字在排序数组中出现的次数。 总结:这个题目中给出“排序”的字眼,就可以使用二分法。用二分查找算法在排序数组中第一个重复数字和最后一个重复数字。从而求得数字在数组中出现的次数。 class Solution { public: int GetNumberOfK(vector<int> data ,int k) { if(data.emp...

慢慢冲鸭子的博客 163

剑指Offer 数字在排序数组中出现的次数

剑指Offer 数字在排序数组中出现的次数 题目描述:统计一个数字在排序数组中出现的次数。 解题步骤:由于数组是排好序的,可以通过两次二分查找分别找到大于target的位置和小于target的位置,两个位置之差就是target出现的次数。 代码: public int GetNumberOfK(int [] array , int k) { if(array.length<1) ...

张毅的博客 337
上一篇: 两个链表的第一个公共结点
下一篇: 二叉树的深度
Findway_
博客等级 码龄10年 36粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值