当前位置: 首页 > news >正文

【C++笔试强训】如何成为算法糕手Day5

  


学习编程就得循环渐进,扎实基础,勿在浮沙筑高台  

 循环渐进Forward-CSDN博客


目录

 循环渐进Forward-CSDN博客

第一题:游游的you

 思路:

第二题:腐烂的苹果

思路:

第三题:孩子们的游戏

思路:


第一题:游游的you

牛客网做题链接:游游的you__牛客网 (nowcoder.com)

 思路:

        这是一道简单的模拟题,我们要找出三个字符(y、o、u)中最少的那个字符的数量,这个数量n表示最多能组成多少个"you"。然后,我们计算o字符的总数减去n,得到剩余的o字符数量。如果剩余的o字符少于2个,那么就不需要进一步操作。如果剩余的o字符数量是2个或更多,我们可以在结果上加1(对于2个o),加2(对于3个o),以此类推。最终的结果是n加上剩余o字符数量减去1。

#include <iostream>
using namespace std;
int main() {int q = 0;cin >> q;while (q--) {int a, b, c;cin >> a >> b >> c;int ret = min(a, min(b, c)) * 2;int t = b - ret / 2;if (t < 2) cout << ret << endl;else cout << ret + t - 1 << endl;}return 0;
}

第二题:腐烂的苹果

牛客网做题链接:腐烂的苹果_牛客题霸_牛客网 (nowcoder.com)

思路:

这个问题可以通过广度优先搜索(BFS)来解决,因为我们需要以最短的时间传播腐烂的苹果。我们可以将每个腐烂的苹果看作是一个源点,然后从这些源点同时开始传播。

  1. 初始化队列:

    • 创建一个队列,并将所有初始状态为腐烂的苹果的位置(坐标)加入到队列中。这些腐烂的苹果是腐烂过程开始的地方。
  2. 广度优先搜索(BFS):

    • 对队列中的每个元素(即腐烂的苹果位置)进行处理:
      • 检查该位置的四个直接邻居(上、下、左、右)。
      • 如果邻居是一个完好的苹果(通常用1表示),则将其状态更改为腐烂(例如,用2表示),并将该邻居的位置加入到队列中。
      • 确保每个位置只被加入队列一次,避免重复处理。
  3. 记录时间:

    • 维护一个变量来记录传播的层数,这代表分钟数。
    • 每次从队列中取出一个元素进行处理时,层数加1。
  4. 检查完好的苹果:

    • 当队列为空时,停止搜索。
    • 遍历整个网格,检查是否还有完好的苹果。
    • 如果发现还有完好的苹果,说明这些苹果无法被腐烂的苹果触及,因此返回-1。
    • 如果所有苹果都已经腐烂,返回记录的层数,即传播所需的总分钟数。

同时注意同一点不能重复入队列以及每次取front()都要对应pop()移除对头,否则会导致 内存超限 控制出队列的循环永无止境,从而程序超时判否。

class Solution {public:int m, n;int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};queue<pair<int, int>> q;bool vis[1001][1001];int ret;void bfs(vector<vector<int> >& grid) {while (!q.empty()) {int sz = q.size();while (sz--) {auto [a, b] = q.front();q.pop();for (int k = 0; k < 4; k++) {int x = a + dx[k], y = b + dy[k];if (x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == 1) {grid[x][y] = 2;q.push({x, y});}}}ret++;}}int rotApple(vector<vector<int> >& grid) {
// 第一次进去不算ret = -1;m = grid.size(), n = grid[0].size();for (int i = 0; i < m; i++)for (int j = 0; j < n; j++) {if (grid[i][j] == 2) {q.push({i, j});}}bfs(grid);for (int i = 0; i < m; i++)for (int j = 0; j < n; j++) {if (grid[i][j] == 1) {return -1;}}return ret;}
};};

第三题:孩子们的游戏

牛客网做题链接:孩子们的游戏(圆圈中最后剩下的数)_牛客题霸_牛客网 (nowcoder.com)

思路:

        一道约瑟夫环的应用版本(一样的思路)。

    public int LastRemaining_Solution (int n, int m) {//初始化模拟的列表List<Integer> list = new ArrayList();for(int i=0;i<n;i++){list.add(i);}int start = 0;//直到剩最后一个才返回while(list.size() !=1){int size = list.size();//计算每次要移除的坐标,就是//上一次的起始坐标start+这次数的新坐标m%size//再将这两个和取余%size,不然可能会超出size范围//最终减去1就是要移除的位置start = (start+m%size)%size-1;//需要考虑如果二者之和size如果相同的话,那么余数是0的特殊情况start = start<0?size-1:start;//移除后进行下一个循环list.remove(start);}//返回剩下的最后一个即可return list.get(0);}

 学习编程就得循环渐进,扎实基础,勿在浮沙筑高台


相关文章:

【C++笔试强训】如何成为算法糕手Day5

学习编程就得循环渐进&#xff0c;扎实基础&#xff0c;勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 循环渐进Forward-CSDN博客 第一题&#xff1a;游游的you 思路&#xff1a; 第二题&#xff1a;腐烂的苹果 思路&#xff1a; 第三题&#xff1a;孩子们的游戏 思路&…...

【Qt】无IDE的Gui程序快速开始

Qt安装 在 Windows 上安装 Qt 的步骤如下&#xff1a; 下载 Qt 安装程序 访问 Qt 的官方网站&#xff1a;Qt Downloads。点击“Download”按钮&#xff0c;下载 Qt Online Installer&#xff08;在线安装程序&#xff09;。 运行安装程序 双击下载的 QtInstaller.exe 文件…...

Python编码系列—Python备忘录模式:掌握对象状态保存与恢复技术

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…...

linux常用命令汇编(持续更新)

一、用户提示符 # root账号提示符 $ 普通用户提示符 二、关闭计算机 shutdown&#xff08;安全有序地关闭计算机&#xff09; 语法&#xff1a;shutdown [options] [time] [message] shutdown -h now #立即关机&#xff08;--halt/终止&#xff09; shutdown -r now #重…...

AI面试指南:AI工具总结评测,助力求职季

AI面试指南&#xff1a;AI工具总结评测&#xff0c;助力求职季 摘要&#xff1a; 在竞争激烈的AI领域秋招季&#xff0c;准备充分并借助高效工具是提升面试通过率的关键。本文主要介绍一些针对秋招的AI面试工具和学习资源&#xff0c;分为简历优化、面试助手、手撕代码练习三个…...

大二考核题解

大二考核题解 题号题目考察知识点A有意思的监考二分答案B海绵宝宝的数独DFSC走楼梯递推D碱基配对kmpE好简单的题啊&#xff0c;写它&#xff01;最短路 写在前面&#xff1a; 整体难度不大&#xff0c;代码能力需要一些&#xff0c;正常来说至少要会3题以上 A 有意思的监考 …...

深入解析:Kubernetes 如何使用 etcd 作为配置中心和注册中心

在 Kubernetes 中&#xff0c;etcd 是核心的分布式存储组件&#xff0c;负责存储和管理集群的所有配置信息、状态数据以及服务注册信息。etcd 的高可用性和强一致性使得它成为 Kubernetes 的 “source of truth”&#xff0c;确保集群能够动态、高效地管理资源&#xff0c;并保…...

MQ高级:RabbitMQ小细节

在之前的学习中&#xff0c;我们只介绍了消息的发送&#xff0c;但是没有考虑到异常的情况&#xff0c;今天我们就介绍一些异常情况&#xff0c;和细节的部分。 目录 生产者可靠性 生产者重连 生产者确认 MQ可靠性 持久化 Lazy Queue 消费者可靠性 消费者确认机制 失…...

期权卖方怎么选择权利金高的品种,期货VIX高低对行情有什么影响

VIX指数——全称为芝加哥期权交易所市场波动率指数&#xff0c;俗称恐慌指数。 是衡量波动性的重要指标。VIX指数上升&#xff0c;预期未来市场波动性会增加。VIX指数下降&#xff0c;预期未来市场波动性会降低。 期货VIX指数最新价格排序 期权卖方尽量选择期货VIX指数在25以…...

内存对齐的原理和使用

1. 什么是内存对齐&#xff1f; 内存对齐是指将数据存储在内存中时&#xff0c;按照数据类型的大小&#xff0c;将数据放在特定的内存边界上。例如&#xff0c;4 字节的 int 通常放在能够被 4 整除的地址上&#xff0c;8 字节的 double 则放在能被 8 整除的地址上。 2. 为什么…...

搭建企业级私有仓库harbor

华子目录 harbor简介实验环境准备下载软件包安装docker-cehosts解析 实验步骤配置https加密传输解压进入解压目录&#xff0c;修改文件配置启动harbor 测试客户端配置harbor本地加速器注意 通过docker compose管理harbor harbor简介 harbor是由wmware公司开源的企业级docker r…...

互联网前后端分离的开发场景,一般会员和数据权限的判断是放在前端还是后端?

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

李宏毅机器学习2022-HW8-Anomaly Detection

文章目录 TaskBaselineReportQuestion2 Code Link Task 异常检测Anomaly Detection 将data经过Encoder&#xff0c;在经过Decoder&#xff0c;根据输入和输出的差距来判断异常图像。training data是100000张人脸照片&#xff0c;testing data有大约10000张跟training data相同…...

用户体验分享 | YashanDB V23.2.3安装部署

近期崖山新版体验过程中&#xff0c;总能看到用户提问&#xff1a;openssl版本问题、monit命令找不到问题、yashan用户权限问题、数据库重装问题 今日整理了多位用户的安装经验&#xff0c;希望能够帮助到大家~ 1.Lucifer三思而后行 &#xff1a;YashanDB 个人版数据库安装部…...

【漏洞复现】泛微OA E-Office /E-mobile/App/init.php 任意文件上传漏洞

免责声明: 本文旨在提供有关特定漏洞的信息,以帮助用户了解潜在风险。发布此信息旨在促进网络安全意识和技术进步,并非出于恶意。读者应理解,利用本文提到的漏洞或进行相关测试可能违反法律或服务协议。未经授权访问系统、网络或应用程序可能导致法律责任或严重后果…...

SpringCloudEureka实战:搭建EurekaServer

1、依赖引入 <dependencies><!-- 注册中心 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency> </dependencies> <de…...

DataLight(V1.4.5) 版本更新,新增 Ranger、Solr

DataLight&#xff08;V1.4.5&#xff09; 版本更新&#xff0c;新增 Ranger、Solr DataLight 迎来了重大的版本更新&#xff0c;现已发布 V1.4.5 版本。本次更新对平台进行了较多的功能拓展和优化&#xff0c;新增了对 Ranger 和 Solr 服务组件的支持&#xff0c;同时对多项已…...

深度解析:Python蓝桥杯青少组精英赛道与高端题型概览

目录 一、蓝桥杯青少组简介二、赛项组别与年龄范围三、比赛内容与题型1. 基础知识范围2. 题型设置2.1 选择题2.2 编程题 3. 考试时长 四、奖项设置与激励措施五、总结 一、蓝桥杯青少组简介 蓝桥杯全国软件和信息技术专业人才大赛&#xff08;简称“蓝桥杯”&#xff09;是由工…...

如何使用SCCMSecrets识别SCCM策略中潜在的安全问题

关于SCCMSecrets SCCMSecrets是一款针对SCCM策略的安全扫描与检测工具&#xff0c;该工具旨在提供一种有关 SCCM 策略的全面安全检测方法。 该工具可以从各种权限级别执行&#xff0c;并将尝试发现与策略分发相关的潜在错误配置。除了分发点上托管的包脚本外&#xff0c;它还将…...

Qt 信号重载问题--使用lambda表达式--解决方法

在connect()中&#xff0c;使用lambda表达式时遇到信号重载&#xff0c;无法识别使用哪个参数时&#xff0c;可通过以下方法处理&#xff1a; 1. 使用QOverload: Qt5.7才有 connect(comboBox,QOverload<int>::of(&QComboBox::currentIndexChanged), [](int index)…...

OpenClaw技能商店:基于nanobot开发并分享自定义模块

OpenClaw技能商店&#xff1a;基于nanobot开发并分享自定义模块 1. 为什么要开发OpenClaw技能 去年夏天&#xff0c;我发现自己每天要花大量时间处理重复性的文件整理工作——下载各种技术文档&#xff0c;按日期和项目分类存储&#xff0c;再手动生成目录索引。当我第三次在…...

Anything V5图像生成效果实测:高清画质与丰富风格展示

Anything V5图像生成效果实测&#xff1a;高清画质与丰富风格展示 1. 引言&#xff1a;惊艳的二次元创作体验 1.1 模型核心能力概述 Anything V5作为Stable Diffusion生态中的明星模型&#xff0c;专为动漫风格图像生成优化。经过大规模高质量二次元数据训练&#xff0c;它能…...

Gemini提示词反推教程!“图生图”来了

看到一张心仪的室内设计图&#xff0c;却不知道如何描述它的高级美&#xff1f; 其实&#xff0c;每一张令人惊艳的图片背后&#xff0c;都有一套隐藏的代码。今天&#xff0c;我们要分享一套“保姆级”教程&#xff1a;利用 MetaChat 平台上的 Gemini 3.1 Pro 充当你的私人审美…...

致开发者:别再重复造轮子,这个开源商城系统让你把时间花在刀刃上

作为开发者&#xff0c;你是否厌倦了每次新项目都要从零搭建电商后台&#xff1f;商品、订单、会员、营销……这些基础模块耗费了你多少宝贵的创造力&#xff1f;今天&#xff0c;我们想和你聊聊一个能让你“拿来即用&#xff0c;改也不难”的解决方案——CRMEB开源商城系统。它…...

FastAPI流式响应性能断崖式下跌?3个隐藏内存泄漏点,资深工程师连夜修复的5行关键代码

第一章&#xff1a;FastAPI 2.0 异步 AI 流式响应 面试题汇总FastAPI 2.0 原生强化了对异步流式响应&#xff08;StreamingResponse&#xff09;的支持&#xff0c;尤其在大语言模型&#xff08;LLM&#xff09;推理、实时 token 生成、语音转文字等 AI 场景中成为高频考点。面…...

Java中正确比较数组最小值的两种方法

本文旨在解决Java Stream 当API使用min()方法获得数组最小值时&#xff0c;返回optionalint类型导致的直接比较错误。我们将深入探讨这个问题的根源&#xff0c;并提供两个有效的解决方案&#xff1a;一是比较Optionalint的getasint()方法&#xff0c;二是引入apache Commons N…...

农机经销商必看:如何用2000-2020年县级数据精准定位区域市场?

农机经销商区域市场精准定位实战指南&#xff1a;基于2000-2020年县级数据分析 站在山东潍坊的田间地头&#xff0c;老张望着远处几台正在作业的拖拉机陷入了沉思。作为一家中型农机经销商的区域经理&#xff0c;他每年最头疼的就是如何准确预测各县区的农机需求——备货多了占…...

ofa_image-caption生产环境部署:支持批量图片处理与结果导出的企业方案

ofa_image-caption生产环境部署&#xff1a;支持批量图片处理与结果导出的企业方案 1. 项目背景与核心价值 在实际的企业应用中&#xff0c;图像内容理解已经成为许多业务场景的必备能力。无论是电商平台的商品图片描述生成&#xff0c;还是内容平台的海量图片标注&#xff0…...

PHPMailer OAuth2认证终极指南:安全挑战与架构实践深度解析

PHPMailer OAuth2认证终极指南&#xff1a;安全挑战与架构实践深度解析 【免费下载链接】PHPMailer The classic email sending library for PHP 项目地址: https://gitcode.com/GitHub_Trending/ph/PHPMailer PHPMailer作为PHP领域最经典的邮件发送库&#xff0c;其OAu…...

第12课:从 SPI 环路、CAN 通信到 SD 与 eMMC 存储实战

本节路线图 先把三条主线分开:控制总 → SPI环路测试:先把时序 → CAN:换一条总线,世界 小猫提醒 这节有分区、烧录或删除类操作,先确认盘符和路径,再按回车。 如果说上一课的关键词是“事件、时间和系统能力”,那这一课的关键词就是“总线、协议和数据落地”。 我们要…...