【c++笔试强训】(第三十八篇)
目录
不相邻取数(动态规划-线性dp)
题目解析
讲解算法原理
编写代码
空调遥控(⼆分/滑动窗⼝)
题目解析
讲解算法原理
编写代码
不相邻取数(动态规划-线性dp)
题目解析
1.题目链接:不相邻取数_牛客题霸_牛客网
2.题目描述
描述
小红拿到了一个数组。她想取一些不相邻的数,使得取出来的数之和尽可能大。你能帮帮她吗?
输入描述:
第一行输入一个正整数 n\n ,代表数组长度
第二行输入 n\n 个正整数 a_iai ,代表整个数组。
1 \leq n \leq 2*10^5 , 1\leq a_i \leq 5*10^31≤n≤2∗105,1≤ai≤5∗103
输出描述:
不相邻的数的最大和。
示例1
输入:
4
2 6 4 1输出:
7
说明:
取 6 和 1 即可
讲解算法原理
解法:
算法思路:
打家劫舍~
编写代码
c++算法代码:
#include <iostream>
using namespace std;
const int N = 2e5 + 10;
int n;
int arr[N];
int f[N], g[N];
int main()
{cin >> n;for(int i = 1; i <= n; i++) cin >> arr[i];for(int i = 1; i <= n; i++){f[i] = g[i - 1] + arr[i]; g[i] = max(f[i - 1], g[i - 1]); }cout << max(f[n], g[n]) << endl;return 0;
}
java算法代码:
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main
{public static void main(String[] args) {Scanner in = new Scanner(System.in); int n = in.nextInt();int[] arr = new int[n + 1]; int[] f = new int[n + 1]; int[] g = new int[n + 1];for(int i = 1; i <= n; i++){arr[i] = in.nextInt();}for(int i = 1; i <= n; i++){f[i] = g[i - 1] + arr[i]; g[i] = Math.max(f[i - 1], g[i - 1]); }System.out.println(Math.max(f[n], g[n]));}
}
空调遥控(⼆分/滑动窗⼝)
题目解析
1.题目链接:登录—专业IT笔试面试备考平台_牛客网
2.题目描述
链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
dddddd作为集训队的队长,一直掌管着集训室的空调遥控器,她需要调整温度使队员们更好地进入训练状态,已知集训室一共有nnn名队员,每位队员都有一个温度诉求a[i](1≤i≤n)a[i](1≤i≤n)a[i](1≤i≤n),当室内温度为KKK时,当且仅当∣a[i]−K∣≤p|a[i]-K|≤p∣a[i]−K∣≤p时,这个队员能够正常进入训练状态,否则就会开始躁动,作为队长,dddddd需要调整好温度,她想知道,在最佳情况下,最多有多少队员同时进入训练状态
输入描述:
第一行两个数n,p(1≤n,p≤1000000),含义如题面描述
接下来一行n个数a[i](1≤a[i]≤1000000)表示每个队员的温度诉求输出描述:
输出一个数字,表示最多有多少队员同时进入训练状态
示例1
输入
6 2 1 5 3 2 4 6
6 2
1 5 3 2 4 6输出
5
5
讲解算法原理
解法:
算法思路:
先排序。
解法⼀:滑动窗⼝
维护窗⼝内最⼤值与最⼩值的差在 2 * p 之间。
解法⼆:⼆分查找
枚举所有的温度,⼆分出符合要求的学⽣区间,然后统计个数。
编写代码
c++算法代码:
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e6 + 10;
int n, p;
int arr[N];
int main()
{cin >> n >> p;for(int i = 0; i < n; i++) cin >> arr[i]; sort(arr, arr + n);int ret = 0, left = 0, right = 0; p *= 2;while(right < n){while(arr[right] - arr[left] > p){left++;}ret = max(ret, right - left + 1); right++;}cout << ret << endl;return 0;
}
java算法代码:
import java.util.*;
public class Main
{public static void main(String[] args){Scanner in = new Scanner(System.in); int n = in.nextInt(), p = in.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; i++){arr[i] = in.nextInt();}Arrays.sort(arr);int left = 0, right = 0, ret = 0; p *= 2; while(right < n){while(arr[right] - arr[left] > p){left++;}ret = Math.max(ret, right - left + 1); right++;}System.out.println(ret);}
}
相关文章:
【c++笔试强训】(第三十八篇)
目录 不相邻取数(动态规划-线性dp) 题目解析 讲解算法原理 编写代码 空调遥控(⼆分/滑动窗⼝) 题目解析 讲解算法原理 编写代码 不相邻取数(动态规划-线性dp) 题目解析 1.题目链接:不相…...
go 自己写序列化函数不转义
以map[int32]string转化为[]byte为例 背景:算法传给我一个map[int32]string类型的值(map的值本身是json转化成的string),我需要把这个值生成一个文件上传到OSS,但是发现通过url下载下来的文件里面有转义字符。 原因&a…...
一般行业安全管理人员考试题库分享
1.在高速运转的机械飞轮外部安装防护罩,属于(B)安全技术措施。 A.限制能量 B.隔离 C.故障设计 D.设置薄弱环节 2.生产经营单位的(B)是本单位安全生产的第一责任人,对落实本单位安全生产主体责任全面负责,具体履行安全生产管理职责。 A.全员 B…...
Marketo REST API 批量修改邮件内容
以下是更加细化的 使用 Marketo REST API 批量修改邮件内容 的步骤,详细解释每个阶段的操作,包括 API 的请求、数据处理及潜在问题解决。 前期准备工作 确保 Marketo API 访问权限 你需要 Marketo REST API 用户 和 API Role,有权限访问邮件资…...
《云原生安全攻防》-- K8s安全框架:认证、鉴权与准入控制
从本节课程开始,我们将来介绍K8s安全框架,这是保障K8s集群安全比较关键的安全机制。接下来,让我们一起来探索K8s安全框架的运行机制。 在这个课程中,我们将学习以下内容: K8s安全框架:由认证、鉴权和准入控…...
淘宝获取sku详细信息 API
淘宝获取 SKU 详细信息的 API 主要是 taobao.item_sku 接口,以下是详细介绍: 公共参数 key:调用 key,是调用接口的身份验证信息,必须以 GET 方式拼接在 URL 中1.secret:调用密钥,与 key 配合使…...
基于Spring Boot的体育商品推荐系统
一、系统背景与目的 随着电子商务的快速发展和人们健康意识的提高,体育商品市场呈现出蓬勃发展的态势。然而,传统的体育商品销售方式存在商品种类繁多、用户选择困难、个性化需求无法满足等问题。为了解决这些问题,基于Spring Boot的体育商品…...
C++小细节笔记
1、C字符串转数字 – 数字转字符串 //string > int 使用 stoi stol//int > string 使用 to_string()2、C遍历 int evalRPN(vector<string>& tokens) {stack<int> intStack;for(string &str:tokens){}bool isValid(string s) {stack<char> …...
go语言并发读写数据队列,不停写的同时,一次最多读取指定量数据(逐行注释)
1、数据队列可以存储任意类型的一个数据(下程序是添加整数值)。 数据队列代码点这里查看《go语言结构体实现数据结构队列(先进先出)存储数据(逐行注释)》 2、读写操作并发进行(下程序向队列中…...
密码学——密码学概述、分类、加密技术(山东省大数据职称考试)
大数据分析应用-初级 第一部分 基础知识 一、大数据法律法规、政策文件、相关标准 二、计算机基础知识 三、信息化基础知识 四、密码学 五、大数据安全 六、数据库系统 七、数据仓库. 第二部分 专业知识 一、大数据技术与应用 二、大数据分析模型 三、数据科学 密码学 大数据…...
【数据库MySQL篇二】MySQL数据库入门基础教程:一网打尽数据库和表各种操作、命令和语法
一、MySQL创建数据库 使用Create命令创建数据库 我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下: CREATE DATABASE 数据库名; 以下命令简单的演示了创建数据库的过程,数据名为 RUNOOB: [roothost]# mysql -u root -p…...
Android 解决“Could not resolve all artifacts for configuration ‘:classpath‘方法
前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 报错背景,公司的项目,长时间没有打开,时隔半年再次打…...
青少年编程与数学 02-004 Go语言Web编程 08课题、使用Gin框架
青少年编程与数学 02-004 Go语言Web编程 08课题、使用Gin框架 一、Gin框架二、接收和处理请求三、应用示例 课题摘要:本文介绍了Gin框架的特点、如何接收和处理请求以及一个应用示例。Gin是一个高性能、轻量级的Go语言Web框架,以其快速、极简设计、强大的路由和中间…...
PostgreSQL: 事务年龄
排查 在 PostgreSQL 数据库中,事务年龄(也称为事务 ID 年龄)是一个重要的监控指标,因为 PostgreSQL 使用事务 ID(XID)来保持事务的隔离性。每个事务都会被分配一个唯一的事务 ID,这个 ID 随着每…...
C# 识别二维码
文章目录 一. 二维码识别技术概述二 维码识别的步骤图像预处理二维码的定位和检测二维码解码 三 常用的二维码识别库1. OpenCV2. ZXing.Net 一. 二维码识别技术概述 二维码是一种通过黑白矩阵排列来编码数据的图形符号,它的编码方式具有较强的容错性,可以…...
KeepAlive与RouterView缓存
参考 vue动态组件<Component>与<KeepAlive> KeepAlive官网介绍 缓存之keep-alive的理解和应用 Vue3Vite KeepAlive页面缓存问题 vue多级菜单(路由)导致缓存(keep-alive)失效 vue3 router-view keeperalive对于同一路径但路径…...
RK3588 , mpp硬编码rgb, 保存MP4视频文件.
RK3588 , mpp硬编码yuv, 保存MP4视频文件. ⚡️ 传送 ➡️ RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGBRk3588 FFmpeg 拉流 RTSP, 硬解码转RGBUbuntu x64 架构, 交叉编译aarch64 FFmpeg mppCode Init MppMPP_RET init_mpp...
使用 Wireshark 和 Lua 脚本解析通讯报文
在复杂的网络环境中,Wireshark 凭借其强大的捕获和显示功能,成为协议分析不可或缺的工具。然而,面对众多未被内置支持的协议或需要扩展解析的场景,Lua 脚本的引入为Wireshark 提供了极大的灵活性和可扩展性。本文将详细介绍如何使…...
ElasticSearch08-分析器详解
零、文章目录 ElasticSearch08-分析器详解 1、分析器原理 Elasticsearch的分词器(Analyzer)是全文搜索的核心组件,它负责将文本转换为一系列单词(term/token)的过程,也叫分词。 (1ÿ…...
【IN、NOT、AND、OR】在 MySql 中的使用方法,使用场景、注意事项
目录 IN NOT AND OR 注意事项: 使用场景: IN 用于指定某个字段的值在一个预定义的列表中。 SELECT * FROM users WHERE age IN (20, 25, 30);查询返回 age 字段 是20、25 、30 的用户记录。 NOT 用于对条件进行否定。 查询将返回与指定 条件相…...
LeetCode 删除无效的括号:python 题解
简介 AI Agent 不仅仅是一个能聊天的机器人(如普通的 ChatGPT),而是一个能够感知环境、进行推理、自主决策并调用工具来完成特定任务的智能系统,更够完成更为复杂的AI场景需求。 AI Agent 功能 根据查阅的资料,agent的…...
2026年AI工具全面爆发:从ChatGPT到DeepSeek,谁在重塑下一代生产力?
还记得2023年ChatGPT刚出来时,大家都在惊叹"AI能聊天了"。但到了2026年,情况完全变了——AI不再是个炫技的玩具,而是实实在在地变成了"生产力工具"。程序员用它写代码,设计师用它做图,运营人用它写…...
别再手动翻译Excel了!用Python+腾讯翻译API,5分钟搞定整张表格
别再手动翻译Excel了!用Python腾讯翻译API,5分钟搞定整张表格 当产品经理收到海外用户反馈的CSV文件时,第一反应往往是打开翻译网站逐行复制粘贴。我曾见过同事花三小时处理200条英文评论,而同样的工作用Python脚本只需喝杯咖啡的…...
鸿蒙游戏:从单设备到全场景
子玥酱 (掘金 / 知乎 / CSDN / 简书 同名) 大家好,我是 子玥酱,一名长期深耕在一线的前端程序媛 👩💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚…...
别再只杀进程了!挖矿病毒XMRig的完整清除与溯源指南(附config.json钱包地址分析)
深度对抗XMRig挖矿病毒:从清除到溯源的实战手册 发现任务管理器里反复出现的xmrig.exe进程?别急着再次点击"结束任务"——这就像用创可贴处理骨折,治标不治本。作为处理过数百起挖矿事件的安全工程师,我总结了一套从内…...
从2D到3D草图进阶:Solidworks曲面建模效率提升全攻略(2023新版)
从2D到3D草图进阶:Solidworks曲面建模效率提升全攻略(2023新版) 在工业设计领域,Solidworks始终保持着强大的竞争力,尤其当设计师从平面思维跃升至三维空间时,3D草图功能便成为突破创意边界的利器。不同于传…...
颠覆黑苹果配置传统:革新式极简EFI生成方案,突破技术壁垒
颠覆黑苹果配置传统:革新式极简EFI生成方案,突破技术壁垒 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否也曾被黑苹果配…...
Paperless-ng多语言文档管理终极指南:如何实现国际化支持的完整解决方案
Paperless-ng多语言文档管理终极指南:如何实现国际化支持的完整解决方案 【免费下载链接】paperless-ng A supercharged version of paperless: scan, index and archive all your physical documents 项目地址: https://gitcode.com/gh_mirrors/pa/paperless-ng …...
从Async到Sync,从SDR到DDR:一次NAND Flash接口升级引发的“血案”与调试实录
从Async到Sync,从SDR到DDR:一次NAND Flash接口升级引发的“血案”与调试实录 那天下午,当示波器上扭曲的DQS信号波形终于变得规整时,我瘫坐在工位上,手里的咖啡早已凉透。这次NAND Flash接口升级引发的连锁反应&#…...
好写作AI|避免“AI味”过重:硕士初稿中的人机协同写作技巧
家人们,谁懂啊? 你兴冲冲地把用AI写的初稿交给导师,结果导师只看了一页,就皱起眉头: “这段是你自己写的还是AI写的?” 你心里咯噔一下,强装镇定:“我自己写的啊……” 导师…...
