24年OPPO秋季笔试题

257. 小欧过河

链接:https://kamacoder.com/problempage.php?pid=1337

思路:这道题的实际需要求的就是在两个11之间,最多能有多少个0。可以记录在遍历序列的时候,记录有最多个0的1的两个下标,最后再返回其差值。要注意的是,两岸也算1,需要在数组里面也要加上。

#include <iostream>
#include <vector>using namespace std;int main()
{int n;cin >> n;int lstIndex = 0;int curIndex = 0;int res = 0;vector<int> nums(n + 2, 0);nums[0] = 1;nums[n + 1] = 1;for (int i = 1; i < n + 1; ++i){cin >> nums[i];}for (int i = 0; i < n + 2; ++i){if (nums[i] == 0){continue;}else{lstIndex = curIndex;curIndex = i;res = max(res, curIndex - lstIndex);}}cout << res << endl;return 0;
}

258. 小欧的数组划分

链接:https://kamacoder.com/problempage.php?pid=1338

思路:这道题可以采用贪心算法,也就是遍历这个数组,然后每一位都进行或运算,直到不满足或运算之后的数字<k,就让答案加1,即分段;然后进行下一区间的或运算。

#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main()
{int n, k;cin >> n >> k;vector<int> nums(n, 0);for (int i = 0; i < n; ++i){cin >> nums[i];}int res = 1;int sum = 0;for (int i = 0; i < n; ++i){if (nums[i] > k){cout << -1 << endl;return 0;}if (int(sum | nums[i]) < k){sum = int(sum | nums[i]);}else{res++;sum = nums[i];}}cout << res << endl;return 0;
}

259.小欧的子序列数量

链接:https://kamacoder.com/problempage.php?pid=1339

思路:这里可以采用动态规划的思想。将dp数组的状态可以表示为第i个数字的前面所包含的[11/114/1145]串的数量。不难发现,如果当前下标的数字是1,且上一个数字是1,就可以把dp[11]的数字加1,反之,则不加。如果遇到了一个数字4,那么dp[114]可以更新为前面dp[11]的数量加上dp[114]已经有的数量。如果遇到了一个数字5则是同理。

#include <iostream>long long mod=1e9;
using namespace std;int main()
{int n;cin >> n;cin.ignore();string str;getline(cin, str);int dp[3]{};for (int i = 0; i < n; ++i){if (str[i] == '1'){if (i && str[i - 1] == '1'){dp[0]++;}}else if (str[i] == '4'){dp[1] = (dp[1] + dp[0]) % (mod + 7);}else if (str[i] == '5'){dp[2] = (dp[2] + dp[1]) % (mod + 7);}}cout << dp[2] << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89553.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

处理Lombok的一个小BUG

对于Lombok报错的修改 一、问题描述 在使用IDEA创建spring boot项目时如果你勾选了Lombok&#xff0c;生成的Lombok会随着maven的刷新而改变处理器的扫描路径&#xff0c;从项目类变到自定义的处理器路径 二、原因与解决方法 原因就是这里写了Lombok的路径才会导致你每次刷新都…

【Java入门到精通】(一)Java发展历程与环境搭建指南

一、Java的发展 Java是在1991年由SUN公司的James Gosling&#xff08;Java之父&#xff09;及其团队所研发的一种编程语言&#xff0c;第一个版本耗时18个月&#xff0c;最开始命名为Oak&#xff08;一种橡树&#xff09;。Java现在广泛应用于各种大型互联网应用&#xff0c;其…

【RK3568+PG2L50H开发板实验例程】Linux部分/UAR读写案例

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 1.1. 案例简介 本案例旨在介绍如何测试开发板上的 UART 串口通信功能。 开发板支持的串口及其对应的设备节点如下表所…

Webpack 中的 Loader 和 Plugin 全面详解

&#x1f3af; Webpack 中的 Loader 和 Plugin 全面详解 &#x1f4cc; 整理不易&#xff0c;记得收藏、点赞再加关注&#xff0c;后续还会更新更多实战文档&#xff01; Webpack 是现代前端构建体系的核心工具&#xff0c;其中 Loader 和 Plugin 是其功能扩展的两大支柱。它们…

主流分布式中间件及其选型

分布式架构中的中间件技术 在互联网公司的分布式架构中&#xff0c;中间件是支撑系统高可用、高并发、可扩展的核心组件。这些中间件针对分布式环境下的共性问题&#xff08;如通信、数据一致性、资源调度等&#xff09;提供标准化解决方案&#xff0c;极大降低了分布式系统的…

设备需求极致紧凑的空间体验,我们该如何解决?

在自动化集成过程&#xff0c;往往会碰到设备对控制系统体积有极致要求的情况&#xff0c;面对这样的挑战&#xff0c;如何解决&#xff1f; 项目背景与需求分析 在自动化集成过程&#xff0c;往往会碰到设备对控制系统体积有极致要求的情况&#xff0c;面对这样的挑战&#x…

Kotlin扩展函数与属性

扩展函数和属性是Kotlin中最具特色的功能之一&#xff0c;它们允许我们在不修改原有类的情况下为类添加新功能。这种设计既保持了类的封装性&#xff0c;又提供了强大的扩展能力。 一、扩展函数&#xff1a;为现有类添加新行为 1.1 基础扩展函数 扩展函数允许我们为任何类&am…

厨师上门做饭小程序源码php方案

厨师上门做饭小程序源码&#xff0c;开发语言后端php&#xff0c;前端uniapp。可二开定制 三个端&#xff1a;用户端师傅端小程序&#xff0c;pc管理后台。 一 用户端 1.单点大厨&#xff1a;选择厨师预约下单&#xff0c;查看厨师评价、厨师的套餐。 2.点套餐&#xff1a;选择…

LLM大模型如何访问MySQL业务数据库

目录 一、LLM大模型如何访问MySQL业务数据库 1.1 为什么需要SQL Agent? 1.2 什么是 create_sql_agent&#xff1f; 1.3 什么是SQLDatabaseToolkit? 二、SQL Agent智能体操作MySQL数据库 三、本地启动服务 验证效果 四、怎么提高SQL Agent智能体的回复准确性&#xff1…

MySQL(112)如何选择读写分离策略?

选择读写分离策略是实施读写分离的关键一步。常见的读写分离策略包括简单的读写分离和基于负载均衡的读写分离。为了实现这些策略&#xff0c;我们需要动态地选择数据源。下面详细介绍如何实现基于Spring Boot的读写分离&#xff0c;并结合代码示例展示不同策略的实现。 读写分…

日志-解决Linux因target is busy无法卸载硬盘/分区的问题 - PHP持续占用分区

效果图 写在前面 此次遇到的问题是&#xff0c;php-fpm持续占用设备/mnt/disk1&#xff0c;强制杀死php所有进程后&#xff0c;依然会自动产生新的进程再次霸占分区&#xff0c;导致设备无法卸载umount。思路是解决谁在不停的捣乱。 步骤 核心&#xff1a; 挂载文件系统到指定…

Linux系统权限维持篇

Openssh后门 重新安装自定义的openssh&#xff0c;达到记录账户密码&#xff0c;也可以采用万能密码连接的功能 1、登录方式 2、登录软件 3、登录机制 环境准备 yum -y install openssl openssl-devel pam-devel zlib zlib-devel yum -y install gcc gcc-c makewget http://c…

spring中maven缺少包如何重新加载,报错java: 程序包org.springframework.web.reactive.function不存在

错误原因分析 java: 程序包org.springframework.web.reactive.function不存在 这个错误是由于 项目中缺少 Spring WebFlux 相关依赖 导致的。org.springframework.web.reactive.function 包属于 Spring WebFlux 模块&#xff08;用于响应式 Web 开发&#xff09;&#xff0c;如…

Linux--线程池

目录 Linux线程池 线程池的概念 线程池的优点 线程池的应用场景 线程池的实现 Linux线程池 线程池的概念 线程池是一种线程的使用模式。 其存在的主要原因就为&#xff1a;线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#…

mars3d (基于 Cesium 的轻量化三维地图库)

mars3d 是什么? Mars3D 作为基于 Cesium 的轻量化框架,正以其简洁的 API 和强大的功能重新定义开发体验。它不仅解决了原生 Cesium 学习曲线陡峭的问题,还通过封装和优化实现了性能与易用性的双重突破。无论是智慧城市、低空经济还是军事仿真,Mars3D 都能提供高效的三维可视…

uniapp 中使用路由导航守卫,进行登录鉴权

前言: 在uniapp 使用中,对于登录界面可能需要路由守卫进行方便判断跳转,以下有两种方案,可以判断用户跳转的时候是否是登录状态 方案一: 1. 可以使用插件 hh-router-guard 2. 使用 uni-simpe-route 方案二: 使用通过uni提供的拦截器实现, uni.addInterceptor 1.新建in…

Leetcode 262. 行程和用户

1.题目基本信息 1.1.题目描述 表&#xff1a;Trips ----------------------- | Column Name | Type | ----------------------- | id | int | | client_id | int | | driver_id | int | | city_id | int | | status | enum | | request_at | varchar | -----------…

P1102 A-B 数对

P1102 A-B 数对 题目背景 出题是一件痛苦的事情! 相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 A+B Problem,改用 A-B 了哈哈! 题目描述 给出一串正整数数列以及一个正整数 C C C,要求计算出所有满足 A − B = C A - B = C A−B=C 的数对的个数(不同…

devextreme-vue的DxDataGrid如何显示行号列

devextreme-vue我使用的是23.2版本&#xff0c;其DxDataGrid如何显示行号列&#xff0c;官方一直没有方案。 DataGrid - How to display a row number in data rows in Angular | DevExpress Support dxDataGrid - provide capability to display a column with row numbers …

【设计模式06】建造者模式

前言 没什么用&#xff0c;类似于builder.build UML类图 代码示例 package com.sw.learn.pattern.B_create.e_builder;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();for …