新闻详情

新闻详情

首页 / 资讯中心 / 详情

cpp算法题目整理——线性枚举篇2

发布时间:2026/9/26 20:04:08来源:尧图网络
cpp算法题目整理——线性枚举篇2
三元组中心问题题目描述在数列 a1,a2,⋯,ana1​,a2​,⋯,an​ 中如果对于下标 i,j,ki 满足 0ijkn1 且 aiajak​则称 ai,aj,ak 为一组递增三元组aj为递增三元组的中心。给定一个数列请问数列中有多少个元素可能是递增三元组的中心。解题思路这个题目不能下意识用三层循环解决用三层循环会导致重复计数因此引入两个bool值用来判断j前面有没有小于他的元素j后面有没有大于他的元素有的话就直接break因为只要存在一个小于、大于j的数就能说明j就是三元组的中心而且这样还是两层循环。拿硬币题目描述桌上有n堆力扣币每堆的数量保存在数组coins中。我们每次可以选择任意一堆拿走其中的一枚或者两枚求拿完所有力扣币的最少次数。解题思路我是先定义了一个哈希表unordered_map mint,int;然后定义了m[1]、m[2]的次数为0接着for循环遍历整个coins然后去判断每个coins[i]需要多少次2多少次1因为求次数最小值所以肯定优先拿2个如果刚好取完那就将次数加在m[2]上然后直接break如果有余数那必定为1然后m[1]即可然后break等待遍历完之后写一个sum求出m[1]和m[2]出现的次数并返回即可。删除有序数组中的重复元素题目描述给你一个 非严格递增排列的数组nums请你原地删除重复出现的元素使每个元素只出现一次 返回删除后数组的新长度。元素的相对顺序 应该保持 一致 。然后返回nums中唯一元素的个数。考虑nums的唯一元素的数量为k。去重后返回唯一元素的数量k。nums的前k个元素应包含排序后的唯一数字。下标k - 1之后的剩余元素可以忽略。解题思路利用双指针遍历slow0fast1然后遍历整个数组fastnums.size();fast; 然后当nums[slow] ! nums[fast]的时候将slow向前移动然后将fast的值赋值给slow这样一来就会把后边的值赋值给第一个重复元素的第二个值依次往后重复元素就会被逐个替代最后返回slow1就是数组长度。将找到的值乘以2题目描述给你一个整数数组nums另给你一个整数original这是需要在nums中搜索的第一个数字。接下来你需要按下述步骤操作如果在nums中找到original将original乘以 2 得到新original即令original 2 * original。否则停止这一过程。只要能在数组中找到新original就对新original继续重复这一过程。返回original的最终值解题思路这个也是进行for循环但是i不能放在for循坏内层应该进行判断因为original每次变化之后都需要从头遍历数组因此当找到这个original的时候需要将i重新置为0num[i]不等于original的时候才进行i猜数字题目描述猜数字游戏是gameboy最喜欢的游戏之一。游戏的规则是这样的计算机随机产生一个四位数然后玩家猜这个四位数是什么。每猜一个数计算机都会告诉玩家猜对几个数字其中有几个数字在正确的位置上。比如计算机随机产生的数字为1122。如果玩家猜1234,因为1,2这两个数字同时存在于这两个数中而且1在这两个数中的位置是相同的所以计算机会告诉玩家猜对了2个数字其中一个在正确的位置。如果玩家猜1111,那么计算机会告诉他猜对2个数字有2个在正确的位置。现在给你一段gameboy与计算机的对话过程你的任务是根据这段对话确定这个四位数是什么。输入数据有多组。每组的第一行为一个正整数N(1N100)表示在这段对话中共有N次问答。在接下来的N行中每行三个整数A,B,C。gameboy猜这个四位数为A然后计算机回答猜对了B个数字其中C个在正确的位置上。当N0时输入数据结束。每组输入数据对应一行输出。如果根据这段对话能确定这个四位数则输出这个四位数若不能则输出Not sure。解题思路这个题目是我做过的最复杂也是难度最高的问题了也是直接遍历四位数嘛从1000开始到9999然后将每个数字去和输入的猜测值正确数字的个数正确数字的位置进行匹配找到满足匹配所有条件的cand再进行输出主要分为两大块一是验证条件c一是验证条件b验证之后输出即可如果不存在就输出not sure就行。这个题目对我来说是最难的。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

基于STM32单片机电磁波检测电磁波传感器电磁辐射蓝牙/WiFi/视频监控/云平台无线APP-DIY设计S445 2026/9/26 20:03:30

基于STM32单片机电磁波检测电磁波传感器电磁辐射蓝牙/WiFi/视频监控/云平台无线APP-DIY设计S445

S445-电磁波检测报警频率变化预警阈值超阈值报警OLED屏声光提醒按键蓝牙/WiFi/视频监控/云平台APP本系统由STM32F103C8T6单片机核心板、OLED屏、无线蓝牙/WIFI/视频监控/云平台模块-可选、电磁波检测模块、舵机控制电路、蜂鸣器报警、电源电路、按键电路组成。【1】OLED液晶显示…

阅读更多 →
基于STM32单片机直流电机PID控制红外光电测速PWM调速里程表蓝牙/WiFi/视频监控/云平台无线APP-DIY设计S440 2026/9/26 20:03:30

基于STM32单片机直流电机PID控制红外光电测速PWM调速里程表蓝牙/WiFi/视频监控/云平台无线APP-DIY设计S440

S440-光电测速PID控制行驶时间里程PWM10档正反转超速阈值OLED屏声光提醒按键蓝牙/WiFi/视频监控/云平台APP本系统由STM32F103C8T6单片机核心板、OLED屏、无线蓝牙/WIFI/视频监控/云平台模块-可选、电机驱动模块、测速传感器、蜂鸣器报警、电源电路、按键电路组成。【1】OLED屏显…

阅读更多 →
Atlas 300V 24G 跑 YOLO 全流程实战:硬件选型、模型转换与推理部署 2026/9/26 20:03:30

Atlas 300V 24G 跑 YOLO 全流程实战:硬件选型、模型转换与推理部署

先说个结论:如果你最近在考虑“用 Atals 300V 24G 跑 YOLO”这件事,那我可以直接告诉你——这条路是通的,而且比大多数人想象中要顺手。华为昇腾这套工具链这两年迭代得很快,跟早年“文档难找、报错靠猜”的体验完全不是一回事。但…

阅读更多 →

最新相关资讯

双指针技巧全解:对撞、快慢指针与滑动窗口的Python实战 2026/9/26 20:52:29

双指针技巧全解:对撞、快慢指针与滑动窗口的Python实战

写这篇笔记之前,我先交代个背景:上一篇我已经把双指针的基本概念和几道入门题过了一遍,这篇算是进阶版的第二篇。如果你正在刷LeetCode或者准备算法面试,双指针绝对是你绕不开的一个技巧——它能把很多O(n^2)的暴力解法压到O(n)&a…

阅读更多 →
PubMed访问卡顿排查指南:从DNS解析到浏览器配置的完整方案 2026/9/26 20:52:29

PubMed访问卡顿排查指南:从DNS解析到浏览器配置的完整方案

1. 从一次深夜文献检索说起:PubMed卡顿到底卡在哪 凌晨一点,我盯着屏幕上转圈的PubMed页面,第7次刷新后终于弹出了"无法访问此网站"。这不是第一次了——过去半年里,实验室里至少5台机器都出现过类似症状:Pu…

阅读更多 →
MySQL日期时间类型选型与坑点全解析:从DATETIME到TIMESTAMP 2026/9/26 20:52:29

MySQL日期时间类型选型与坑点全解析:从DATETIME到TIMESTAMP

做后端开发的,迟早要和 MySQL 的日期时间类型正面交锋。我见过太多线上事故,比如整张表的 timestamp 字段突然全部变成 1970,或者明明存进去的是 2024 年,查出来却慢了 8 小时,更别提那个让无数新人一脸懵的0000-00-00…

阅读更多 →
pipx command not found?一文讲透PATH配置与终端排错链路 2026/9/26 20:52:29

pipx command not found?一文讲透PATH配置与终端排错链路

在终端里敲下pipx然后被 bash 弹回一句command not found,这件事我前前后后碰见不下十次。有时候是这台机器上确实没装过,有时候是装过了但 bash 压根没去那个目录找,还有一次是我改完.bashrc之后新开的终端反而把路径弄丢了。这类报错看似简…

阅读更多 →
数据结构二叉树:遍历、线索化与运行时错误排查 2026/9/26 20:52:10

数据结构二叉树:遍历、线索化与运行时错误排查

数据结构(四)二叉树学数据结构绕不开二叉树,408考研、期末考、实验报告、机试,到处都有它的影子。我当年学到这里的时候也有种“听懂了但不会写代码,写出了代码却总报错”的憋屈感,尤其是那几个运行时错误&…

阅读更多 →
WiNEX架构解析与落地实践:从单体HIS到双中台重构 2026/9/26 20:52:10

WiNEX架构解析与落地实践:从单体HIS到双中台重构

简介:医院信息化建设中,HIS系统作为核心业务系统,长期面临业务耦合、数据模型不统一等结构性挑战。中台架构将通用能力沉淀为服务,通过业务中台与数据中台分离,实现医嘱、计费等模块的解耦,并基于统一临床数…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉