面试题39. 数组中出现次数超过一半的数字

面试题39:数组中出现次数超过一半的数字 面试题39:数组中出现次数超过一半的数字 题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字 思路1: 如果这个数组有序,遍历一边并记录出现次数最多的数字,然后判断是否是出现的次数超过数组长度的一半;先排序再找,时间复杂度为O(nlogn) //思路1 int findNumberMethod1(int arr[], int length) { if (arr == NULL || length <= 0) { return -1; } 阅读详情

【题目】
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
来源:leetcode
链接:https://leetcode-cn.com/problems/exchange-lcci/
【示例1】
输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]
输出: 2
【提示】
1 <= 数组长度 <= 50000
【代码】

class Solution {
public:
    map<int,int> m;
    int majorityElement(vector<int>& nums) {
        int l=nums.size()/2;
        for(auto x:nums){
            m[x]++;
            if(m[x]>l)
                return x;
        }            
        return 0;
    }
};

【排序+技巧】排序后,数组中出现次数超过一般的数字一定位于数组中间

class Solution {
public:
    map<int,int> m;
    int majorityElement(vector<int>& nums) {
        sort(nums.begin(),nums.end());
        return nums[nums.size()/2];
    }
};

【摩尔投票法】

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        stack<int> s;
        for(auto x:nums){
            if(s.empty()){
                s.push(x);
            }else{
                int topnum=s.top();
                if(x!=topnum)
                    s.pop();
                else
                    s.push(x);
            }
        }
        if(s.empty())
            return -1;
        return s.top();
    }
};
ESP-IDF 利用ESP32构建智能音乐播放器(一)---------- 实现SD卡MP3文件的解码与播放 本文详细介绍了如何利用ESP32和ESP-IDF开发框架,从零开始构建一个智能音乐播放器。文章重点讲解了如何通过SD卡模块读取MP3文件,并集成Helix MP3解码库进行软件解码,最终通过I2S接口驱动音频模块实现播放。内容涵盖硬件连接、软件环境搭建、核心解码与输出逻辑,为嵌入式音频开发提供了完整的实战指南。 阅读详情

相关推荐

知识图谱初步学习(一)——本体+Protege新手学习

文章目录前言(本体详解)1.本体概念2.本体分类3.本体组成4.本体构建方法一、protege简介二、软件使用步骤1.安装2.使用三、问题解决方案汇总 前言(本体详解) 在开始学习知识图谱的过程中,首先就是要了解什么是本体(ontology)。 1.本体概念 本体的概念最初源自于哲学领域,在哲学中的定义为“对世界上客观事物的系统描述,即存在论”。哲学中的本体关心的是客观现实的抽象本质。而在计算机领域,本体是可以在语义的层次上来对知识进行描述,可以看做是某一个领域知识的通用模型。 本体是从客观世界中抽象出来

qq_43654669的博客 3万+

《剑指Offer》学习笔记--面试题29:数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2. 解法一:基于Partition函数的O(n)算法 如果我们回到题目本身仔细分析,就会发现前面的思路并没有考虑到数组的特性:数组中有一个数字出现的次数超过了数组长度的一半。如果把这个数组排序,那么排序

wei.zhou的专栏 768

SAP ABAP VL09 BAPI VL 216

ls_batch_item-fact_unit_denom = ls_lips_split-umvkn. "销售数量转换为 SKU 的值(分母)ls_batch_item-fact_unit_nom = ls_lips_split-umvkz. "销售数量转换成SKU的分子(因子)ls_batch_item-sales_unit_iso = ls_lips_split-meins. "被拆分DN基本单位。

ChampaignWolf的专栏 2300

多味的LeetCode --- 面试题39. 数组中出现次数超过一半的数字

题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 解题思路1: 使用Counter,注意元组的读取方式 代码1: class Solution: def MoreThanHalfNum_Solution(...

zhf的博客 324

Unet++改进33:添加ConvolutionalGLU(2024最新改进方法)|紧凑的网络结构和高效的运算

由于残差连接的深度退化效应,许多依赖堆叠层进行信息交换的高效视觉变形模型往往不能形成足够的信息混合,导致视觉感知不自然。为了解决这个问题,在本文中,我们提出了聚合注意力,这是一种基于仿生设计的令牌混合器,它模拟生物中央凹视觉和连续眼运动,同时使特征映射上的每个令牌具有全局感知。此外,我们结合了可学习的令牌,与传统的查询和键交互,这进一步多样化了亲和矩阵的生成,而不仅仅依赖于查询和键之间的相似性。我们的方法不依赖于堆叠进行信息交换,从而有效地避免了深度退化,实现了自然的视觉感知。

AIcurator的博客 684

LLM 大模型学习必知必会系列(十一):大模型自动评估理论和实战以及大模型评估框架详解

LLM 大模型学习必知必会系列(十一):大模型自动评估理论和实战以及大模型评估框架详解

丨汀、的博客 3217

整数数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

数组中有且仅有一个数会超出数组长度的一半,用两个for循环遍历数组,如果找出一个数超过数组长度的一半,则输出这个数并结束循环。 public static void main(String[] args) { int[] a={4,5,8,9,5,4,1,4,1,1,1,1,1,1,1,1,5,6,8,1}; int count=0; for (int i = 0; i <a.length ; i++) { count=0; for (int .

lczxyj的博客 474

YOLOv11的嗅觉传感器数据关联-(特殊场景下的气味-视觉联合分析)

摘要 本文探讨了YOLOv11与嗅觉传感器融合的多模态感知技术。通过分析YOLOv11的架构特性与嗅觉传感器的数据特点,提出了三种融合策略:数据级、特征级和决策级融合。系统采用硬件同步方案实现时空对齐,包含视觉采集模块、嗅觉传感模块和边缘计算单元。环境配置基于Python 3.9和PyTorch 2.0,支持实时多模态数据处理。该技术可应用于环境监测、工业检测等场景,突破单一视觉感知的局限性。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 630

给定一个整数序列,某个整数出现的次数超过了序列长度的一半,请找出这个数。例如序列:2 5 4 5 5 5 5 6 5 6 该序列的长度为:10,整数2出现了1次,整数4出现了1次,整数6出现了2次,整

77,给定一个整数序列,某个整数出现的次数超过了序列长度的一半,请找出这个数。例如序列:2 5 4 5 5 5 5 6 5 6 该序列的长度为:10,整数2出现了1次,整数4出现了1次,整数6出现了2次,整数5出现了6次。 因此输出结果为:5 输入 第1行:整数n 接下来n行:n个整数 输出 出现次数超过一半的整数(题目给定的样例必存在结果) 样例输入 5 2 3 2 3 3 #换行 样例输出 3’’’ l=[] n=int(input("请输入正整数n:")) str=input() str_list=

AFEI666666的博客 404

基于STM32L4XX 、HAL库的TMP144YFFR数字温度传感器驱动应用C语言程序设计

define TMP144_ADDRESS 0x00 // 默认为全局地址,用于单器件或MDA命令。#define TMP144_CMD_READ_TEMP 0x00 // 读取温度寄存器命令。if (temp_raw & 0x800) { // 判断第11位(符号位)

PP_Cottage的博客 91

详解Xilinx FPGA高速串行收发器GTX/GTP(1)--SerDes和GTX的关系

详解Xilinx FPGA高速串行收发器GTX/GTP(1)--SerDes和GTX的关系

孤独的单刀 4356

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

1.数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 比如:输入一个长度为9的数组,(1,2,3,2,2,2,5,4,2),由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2,如果不存在,则输出0。 提示:Collections.sort() 实现代码如下: 1、 public class Getnum { public static void sort(int a[]) { int i,j,t; for(i=0;i<a.length-1;i++) { for(

奈一的博客 1179

单稳态触发器Multisim电路仿真——硬件工程师笔记

本文系统介绍了单稳态触发器的基础知识及其实现方式。主要内容包括:1)单稳态触发器的工作原理、电路结构、特点及应用;2)555定时器实现单稳态触发器的配置及工作过程;3)使用反相器和与非门实现积分型和微分型单稳态触发器的电路结构及工作原理。文章详细阐述了各种实现方式的特性、应用场景及设计考虑,为硬件工程师提供了实用的电路设计参考。最后还附有相关笔试面试题链接,便于读者进一步学习扩展。

XU157303764的博客 1880

剑指offer面试题39(java版):数组中出现次数超过一半的数字

welcome to my blog 剑指offer面试题39(java版):数组中出现次数超过一半的数字 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路1 出发点:数组中出现次数超过数组长度一半的元素, 出现的次数比...

littlehaes的博客 511

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

【leetcode-python-13-分治算法】面试题39. 数组中出现次数超过一半的数字

【leetcode-python-13-分治算法】面试题39. 数组中出现次数超过一半的数字参考大佬版1(53.01%)参考大佬版(68.08%) leetcode 面试题39. 数组中出现次数超过一半的数字 参考大佬版1(53.01%) 摩尔投票法: 核心理念为 “正负抵消” 。 票数和:由于众数出现的次数超过数组长度的一半;若记 众数 的票数为+1,非众数 的票数为−1,则一定有所有数字的 票数和 >0。 注:参考题解区Krahets思路。 class Solution(object):

huajiao4的博客 291

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

剑指offer | 面试题39:数组中出现次数超过一半的数字

转载本文章请标明作者和出处 本文出自《Darwin的程序空间》 本文题目和部分解题思路来源自《剑指offer》第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 解题分析 ...

程序员大航子 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【剑指offer】面试题39:数组中出现次数超过一半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 牛客网链接:https://www.nowcoder.com/questionTerminal/e8a1b01a2df14cb2b228b30ee6a921...

Java学习 501

【剑指offer】面试题39 数组中出现次数超过一半的数字

题目要求 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 题目分析 影响输出的是两个元素,一个是数字,一个是次数 主要代码c++ class Solution { public: int MoreThanHalfNum_Solu...

爱喝舒化奶的博客 433

剑指offer:面试题39:数组中出现次数超过一半的数字

题目 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。 思路 思路一 先排序,则次数超过一半的数字一定在数组中间。 可以利用快排的partition方法,获得某随机数字x,将比x小的排到数组左边,比x大的排到数组右边。得到x的位置index,...

www122930的博客 246

《剑指offer》面试题39:数组中出现次数超过一半的数字

题目:数组中一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为 9 的数组{1,2,3,2,2,2,5,4,2}。由于数字 2 在数组中出现了 5 次,超过数组长度的一半,因此输出 2. 思路: 1.这是到求众数的问题,有很多种解法,其中我感觉比较好的有两种,一种是用哈希表,这种方法需要O(n)的时间和空间,另一种是用一种叫摩尔投票法 Moore Voting,需要O(n)...

qq_43502142的博客 285

【Java】面试题39:数组中出现次数超过一半的数字

题目描述: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 例子说明:如输入一个长度为9的数组{ 1, 2, 3, 2, 2, 2, 5, 4, 2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2 。 分析思路1:基于Partition 函数的O(n)算法 数组中有一个数字出现的次数超过了数组长度的一半。如果把这个数组排序,那么排序之后位于数组中间的数字一定就是那个...

小小核桃 225

《剑指offer》 面试题39. 数组中出现次数超过一半的数字

题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 限制: 1 <= 数组长度 <= 50000 自己的想法(比较low) 因为用Java写的,所以借助的Map容器,正好也巩固了下HashMap常用方法和遍历方式。看了官方解法后…发现无论从空间还是时间是上说,才发现又更简单的方法 class Solution { pu

小李的博客 265
上一篇: 【简单】1394. 找出数组中的幸运数
下一篇: 【简单】面试题03. 数组中重复的数字
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值