【C语言】每日一题(多数元素)
多数元素,链接奉上
方法
- 1.摩尔投票
- 2.合理但错误的方法
- 2.1暴力循环
- 2.2排序+求出中间元素中间元素
1.摩尔投票
先来简单的介绍摩尔投票:
摩尔投票是一种用来解决绝对众数问题的算法。
什么是绝对众数呢?
在一个集合中,如果一个元素的出现次数比其他所有元素的出现次数之和还多,那么就称它为这个集合的绝对众数。等价地说,绝对众数的出现次数大于总元素数的一半。
思路:
设置一个计数器
count
利用绝对众数与非绝对众数相互对抗、抵消,
首先遍历数组
遇到相同的count++,不同的count--
在根据count的数值设置当前的candidate(投票对象)
因为绝对众数>非绝对众数,对抗过后剩下的那个元素一定是绝对众数
代码实现:
int majorityElement(int* nums, int numsSize)
{//mooreint i=0;int candidate=nums[0];//设置投票对象int count=1;//因为投票对象是nums[0],本身就是1票for(i=1,count=1;i<numsSize;i++)//遍历数组{if(candidate==nums[i])//当投票对象与当前元素相同时count++count++;else{//否则count--count--;if(count<0)//当投票对象票数<0,重新选择对象{candidate=nums[i];count=1;//票数重置为1}}}return candidate;
}
2.合理但错误的方法
这是题主自己经历的错误,因为超出运行时间,所以不可以用
但是
注意2.2中的方法会根据排序的不同方法而产生不同影响
例如:
冒泡排序会时间出界,但快速排序不会
2.1暴力循环
马有失蹄,暴力循环也会
思路:
设置计数器
count=0
利用外部循环变量作为数组下标,
在内层也设置一个循环变量为数组下标,
与每一个数组元素进行比较,相同时count++当满足count>numssize/2时break
代码实现:
int majorityElement(int* nums, int numsSize)
{int i = 0;for (i = 0; i < numsSize; i++){int count = 0;for (int j = 0; j < numsSize; j++){if (nums[i] == nums[j])count++;}if (count > numsSize / 2)break;}return nums[i];}
2.2排序+求出中间元素中间元素
思路:
先进行排序,之后求出nums[numsSize/2](中间元素),因为绝对众数所占元素必定过半,故中间元素一定为绝对众数,再return中间元素
代码实现:
int majorityElement(int* nums, int numsSize)
{int i = 0;int tmp = 0;for (i = 0; i < numsSize - 1; i++){for (int j = 0; j < numsSize - 1 - i; j++){if (nums[j] > nums[j + 1]){tmp = nums[j];nums[j] = nums[j + 1];nums[j + 1] = tmp;}}}return nums[numsSize/2];
}
欢迎讨论哦
相关文章:
【C语言】每日一题(多数元素)
多数元素,链接奉上 方法 1.摩尔投票2.合理但错误的方法2.1暴力循环2.2排序求出中间元素中间元素 1.摩尔投票 先来简单的介绍摩尔投票: 摩尔投票是一种用来解决绝对众数问题的算法。 什么是绝对众数呢? 在一个集合中,如果一个元素…...
后端 .net7 Minimal API 限流中间件(微信小程序无师自通十)
我的微信小程序使用.net7 Minimal API 作为后端,当服务器摆上公网后,可以观察到很多的攻击行为和暴力访问。所以,我需要使用微软的限流中间件部署相应的功能在服务器上 关键字: AddFixedWindowLimiter using Microsoft.AspNetCo…...
背上沉重的书包准备面试之react篇
目录 react特性? react生命周期? state和props区别 react中setState执行机制? 在react类组件形式中,setState第二个参数的作用? react事件机制? react事件绑定方式有哪些? react组件之间…...
OpenCV-Python中的图像处理-霍夫变换
OpenCV-Python中的图像处理-霍夫变换 霍夫变换霍夫直线变换霍夫圆环变换 霍夫变换 霍夫(Hough)变换在检测各种形状的技术中非常流行,如果要检测的形状可以用数学表达式描述,就可以是使用霍夫变换检测它。即使要检测的形状存在一点破坏或者扭曲也是可以使…...
W5500-EVB-PICO做UDP Client进行数据回环测试(八)
前言 上一章我们用开发板作为UDP Server进行数据回环测试,本章我们让我们的开发板作为UDP Client进行数据回环测试。 连接方式 使开发板和我们的电脑处于同一网段: 开发板通过交叉线直连主机开发板和主机都接在路由器LAN口 测试工具 网路调试工具&a…...
npm install 中 --save 和 --save-dev 是什么?
npm,全名 Node Package Manager,套件管理工具,package.json 会记下你在项目中安装的所有套件。 假设在项目中安装 lodash npm i --save lodash这样在 dependencies 中会出现: 如果修改了导入方式: npm i --save-dev …...
【Nginx17】Nginx学习:目录索引、字符集与浏览器判断模块
Nginx学习:目录索引、字符集与浏览器判断模块 今天要学习的内容有几个还是大家比较常见的,所以学习起来也不会特别费劲。对于目录的默认页设置大家都不会陌生,字符集的设置也比较常见,而浏览器的判断这一块,可能有同学…...
CA/TA开发编程实战-视频课程
Hello大家好,上架一门新的视频课程,课程主要包含两大部分,第一部分搭建环境,第二部分从无到有的编写代码。带领大家"手把手"编写。 具体大纲如下: qemu v8环境搭建 搭建一个qemu_v8的环境,用于…...
(7)(7.1) 使用航点和事件规划任务
文章目录 前言 7.1.1 设置Home位置 7.1.2 视频:制作并保存多路点任务 7.1.3 视频:加载已保存的多航点任务 7.1.4 使用说明 7.1.5 提示 7.1.6 自动网格 7.1.7 任务指令 7.1.8 任务结束 7.1.9 任务重置 7.1.10 MIS_OPTIONS 7.1.11 任务再出发 …...
OCR相关模块——版面分析技术、表格文本识别
OCR相关模块——版面分析技术、表格文本识别 版面分析技术表格识别技术 版面分析技术 版面分析模型:飞桨用到了yolov2检测模型,对文档图片中的文本、表格、图片、标题与列表区域进行检测。当前主流是用分割做。 表格识别技术 参考博文...
mov转mp4格式怎么转?
mov转mp4格式怎么转?众所周知,MOV视频格式是由苹果公司推出的常用的视频格式,能够在苹果软件及设备上使用。但是,如果将其应用于其他软件和设备上的话,可能会遇到文件无法正常播放的情况。在这个时候,我们需…...
SSL握手协议相关概念
下图为握手协议的流程图,具体的解释参考博客: 【下】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS_tenfyguo的博客-CSDN博客 下面梳理一下SSL协议中的一些细节。首先是相关名词:证书、…...
idea 打开java项目后新建的模块中,java文件夹需要变成蓝色,以及resources文件夹变成三条杠的
idea 打开java项目后新建的模块中,java文件夹需要变成蓝色,以及resources文件夹变成三条杠的方法 再选择modules,找到需要变蓝的文件夹,点击sources即可 同理resources文件夹变成三条杠也只需要找到对应文件夹,点击re…...
【Docker】Docker network之bridge、host、none、container以及自定义网络的详细讲解
🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Python、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL&…...
滑模控制器理论推导和matlab/simulink实例分享
滑模控制的运动轨迹主要分为两个方面:(1)系统的任意初始状态向滑模面运动阶段;(2)系统到达滑模面后并且慢慢趋于稳定的阶段。所以,对于滑模变结构控制器的设计,对应于系统运动的两个阶段,可以分为两个部分:…...
git 操作
git切换ssh和http协议 切换协议: 查看当前remote git remote -v 切换到http: git remote set-url https://github.com/username/repository.git 切换到ssh: git remote set-url gitgithub.com:username/repository.git 某些文件不想提交…...
自建hexo博客并将原有的文章发布其上
1、保存粘贴到memo9中的博客文章,并将txt转换成word文档 varPowerShellPath, CommandLine: string; // , ScriptPath begin//save to txtMemo9.Lines.SaveToFile(test.txt);memo10.Lines.SaveToFile(txt2word.ps1);//save as docxPowerShellPath : powershell.exe…...
【双指针_和为 s 的两个数_C++】
和为s的两个数字 class Solution { public:vector<int> twoSum(vector<int>& nums, int target) {int n nums.size();int left 0;int right n-1;while(left<right){if(nums[left]nums[right]>target) right--;else if(nums[left]nums[right]<tar…...
HTML5的介绍和基本框架
目录 HTML5 HTML5介绍 HTML5的DOCTYPE声明 HTML5基本骨架 html标签 head标签 body标签 title标签 meta标签 在vscode中写出第一个小框架 HTML5 HTML5介绍 HTML5是用来描述网页的一种语言,被称为超文本标记语言。用HTML5编写的文件,后缀以.ht…...
代码随想录算法训练营第58天|动态规划part15|392.判断子序列、115.不同的子序列
代码随想录算法训练营第58天|动态规划part15|392.判断子序列、115.不同的子序列 392.判断子序列 392.判断子序列 思路: (这道题也可以用双指针的思路来实现,时间复杂度也是O(n)) 这道题应该算是编辑距…...
DSP28335串口调试:从printf重定向到稳定数据输出的实战解析
1. 为什么需要printf重定向? 在DSP28335开发过程中,printf函数是我们最常用的调试工具之一。想象一下,当你需要实时查看算法运行状态、变量数值或者系统日志时,如果每次都要停下来用调试器查看,那效率得多低啊…...
遇到“用户对AIAgent进行提示词注入”怎么办?
文章目录先理解什么是“提示词注入”图片里的防护方法(两层)第一层:System Prompt 先贴“封条”第二层:输出端再加“安检门”总结先理解什么是“提示词注入” 你可以把 Agent(智能助手) 想象成一个 严格遵…...
RK3576/RK3588 Yolo11 目标检测 Demo
前言 以前的大作业,根据rknn_model_zoo和easy eai示例代码修改(缝合),仅供参考 后来我试着模块化一些,方便看,但因为核心代码都是直接用的示例代码,所以有些模块还是耦合(composit…...
AI的“血管”:从大模型需求看6G、高速光纤与智算中心网络的技术变革
大模型训练与推理的爆发,正以前所未有的力度重塑通信网络基础设施。6G、高速光纤、智算中心网络,正成为AI基础设施的“血管”,承载着算力的血液,决定智能的极限。当GPT-5.4的推理能力逼近人类专家,当Sora可以生成一分钟…...
从零到一:STM32手动移植FreeRTOS的工程化实践与源码解析
1. 为什么需要手动移植FreeRTOS? 第一次接触FreeRTOS时,很多人会选择用STM32CubeMX自动生成工程。这确实方便,就像用预制菜做饭,但真正想掌握RTOS内核,手动移植才是"从买菜到炒菜"的完整过程。我遇到过不少项…...
Gradio项目快速公网演示:除了share=True,你还有这几种轻量级内网穿透方案
Gradio项目快速公网演示:5种轻量级内网穿透方案横向评测 当你开发了一个酷炫的机器学习模型演示,或是精心设计的数据可视化界面,最迫切的需求往往是如何快速分享给同事或客户。Gradio的shareTrue参数可能是大多数开发者首先想到的方案&#x…...
科研加速器:GLM-4.7-Flash驱动OpenClaw自动整理文献综述
科研加速器:GLM-4.7-Flash驱动OpenClaw自动整理文献综述 1. 为什么需要自动化文献整理 作为每天需要阅读十几篇论文的科研工作者,我发现自己至少有30%的时间花在了机械性劳动上——下载PDF、重命名文件、提取关键结论、整理参考文献格式。这些工作虽然…...
PX4飞控系统深度探索:如何用开源技术打造智能无人机控制大脑
PX4飞控系统深度探索:如何用开源技术打造智能无人机控制大脑 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 想象一下,你正站在一片开阔的试验场上,手里握着一架…...
抖音音频提取工具 v1.0 - 快速提取抖音视频音频
抖音音频提取工具 v1.0 是可快速提取抖音短视频音频并保存本地的实用工具,依托 WebView2 与 FFmpeg 技术实现,操作简单易上手,能满足车机播放等个人娱乐音频使用需求,工具仅支持个人娱乐使用。抖音音频提取工具 v1.0 抖音短视频音…...
so-vits-svc声压级标准化终极指南:如何避免AI语音转换中的音频质量损伤
so-vits-svc声压级标准化终极指南:如何避免AI语音转换中的音频质量损伤 【免费下载链接】so-vits-svc SoftVC VITS Singing Voice Conversion 项目地址: https://gitcode.com/gh_mirrors/so/so-vits-svc so-vits-svc作为当前最先进的AI歌声转换框架ÿ…...
