【刷题汇总 -- 爱丽丝的人偶、集合、最长回文子序列】
C++日常刷题积累
- 今日刷题汇总 - day021
- 1、爱丽丝的人偶
- 1.1、题目
- 1.2、思路
- 1.3、程序实现
- 2、集合
- 2.1、题目
- 2.2、思路
- 2.3、程序实现 -- set
- 3、最长回文子序列
- 3.1、题目
- 3.2、思路
- 3.3、程序实现 -- dp
- 4、题目链接
今日刷题汇总 - day021
1、爱丽丝的人偶
1.1、题目

1.2、思路
读完题,知道让我们将一个有序的身高序列重新排队,要求除了第一个和最后一个元素外,不能让x的前、后元素一个比它高,一个比它矮,求怎么摆能够满足上述条件并摆放所有玩偶。那么,分析题目和示例,得知,不能让x的前后具有相异性,那么要么全部比x大,要么全部比x小即可。既然如此,我第一个摆放最小的1,第二个摆放最大的n,再接着拜访次小的2,再接着摆放次大的n-1即可。发现这个规律后,就按照这个逻辑实现即可。接下来,就是程序实现。
1.3、程序实现
根据题目和思路分析,由于是有序序列,那么直接按照先放置小的,再放大的顺序循环即可。
#include <iostream>using namespace std;int main()
{int n;cin >> n;int left = 1;int right = n;while(left <= right){cout << left << " ";left++;if(left <= right){cout << right << " ";right--;}}return 0;
}


2、集合
2.1、题目

2.2、思路
读完题,知道要求实现两个集合的相加,其中相加之后的集合中不能出现相同元素。首先,能够想到得基本思想就是归并排序,先把A,B集合sort排序,然后进行归并排序,最后去重输出。那么既然如此,简化思路就是将A,B集合需要放入同一个容器中,然后排序+去重即可。恰好得是C++提供了一个set关联式容器,set作为一个容器也是用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。需要注意的是set中元素的值不能直接被改变。
底层本质:C++ STL中标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-Black Tree)。RB树的统计性能要好于一般平衡二叉树,所以被STL选择作为了关联容器的内部结构。
所以对于这道题,使用set可以完美解决问题。
2.3、程序实现 – set
首先,按照要求和思路分析,引入#include 头文件,然后采用预处理方式按照题目输入和插入到同一个容器s中,自动完成排序与去重,最后直接遍历输出即可。
#include <iostream>
#include <set>
using namespace std;int main()
{int n,m;cin >> n >> m;set<int> s;int A,B;for(int i = 0;i < n;i++){cin >> A;s.insert(A);}for(int i = 0;i < m;i++){cin >> B;s.insert(B);}for(auto num : s){cout << num << " ";}return 0;
}


3、最长回文子序列
3.1、题目

3.2、思路
读完题,知道跟之前做过的题连续子数组最大和类似,都不是固定长度的,可以是任意长度的可能,所以不采用滑动窗口而采用dp动态规划。求一个字符串中最长的回文子序列,其中,本题中子序列字符串任意位置删除k(len(s)>=k>=0)个字符后留下的子串。那么子序列是不定长的情况,所以动态规划法需要状态表示,以dp[i][j]表示,在第 [ i , j ] 区间的回文字符串最大长度,推导状态转移方程,当回文字符串长度为一个字符时,则 i 等于 j ,直接输出1即可,然后要求最大回文串,那么当字符串本身就是回文时就是最大长度,另外本身不是字符串的情况下,就又分为左边去掉一个字符组成的区间dp[i+1][j],右边去掉一个字符组成的区间dp[i][j-1]为次打区间,如果满足回文时就是最大回文。所以状态转移方程情况分为:
a、当i = j 的时候,只有⼀个字符,⻓度为1;
b、当i < j 的时候,分情况讨论:
(1)、str[i] == str[j]时:dp[i][j] = dp[i + 1][j - 1] + 2;
(2)、str[i] != str[j]时:dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]);
另外注意初始化为了处理长度为1时的情况,所以置dp[i][i] = 1;表示每个单独的字符都是长度为1的回文子序列 和 返回值,长度为n的字符串满足[0,n)区间,所以输出是dp[0][n-1]即可。那么接下来就是,程序实现。
3.3、程序实现 – dp
首先根据思路分析得出即可
- 状态表⽰: dp[i][j] 表⽰:字符串[i, j] 范围内的最⻓回⽂⼦序列的⻓度;
- 状态转移⽅程:
a、当i = j 的时候,只有⼀个字符,⻓度为1;
b、当i < j 的时候,分情况讨论:
c、s[i] == s[j]:dp[i][j] = dp[i + 1][j - 1] + 2;
d、s[i] != s[j]:dp[i][j] = max(dp[i + 1][j], dp[i][j - 1]); - 初始化: dp[i][i] = 1 。
- 返回值: dp[0][n - 1] 。
#include <iostream>
#include <string>
using namespace std;int dp[1001][1001];int main()
{string str;cin >> str;int n = str.size();for(int i = n-1;i >= 0;i--){dp[i][i] = 1;for(int j = i + 1;j < n;j++){if(str[i] == str[j])dp[i][j] = dp[i+1][j-1] + 2;elsedp[i][j] = max(dp[i+1][j],dp[i][j-1]);}}cout << dp[0][n-1] << endl;return 0;
}


4、题目链接
🌟爱丽丝的人偶
🌟集合
🌟最长回文子序列
相关文章:
【刷题汇总 -- 爱丽丝的人偶、集合、最长回文子序列】
C日常刷题积累 今日刷题汇总 - day0211、爱丽丝的人偶1.1、题目1.2、思路1.3、程序实现 2、集合2.1、题目2.2、思路2.3、程序实现 -- set 3、最长回文子序列3.1、题目3.2、思路3.3、程序实现 -- dp 4、题目链接 今日刷题汇总 - day021 1、爱丽丝的人偶 1.1、题目 1.2、思路 …...
基于vue3 + vite产生的 TypeError: Failed to fetch dynamically imported module
具体参考这篇衔接: Vue3报错:Failed to fetch dynamically imported module-CSDN博客 反正挺扯淡的,错误来源于基于ry-vue-plus来进行二次开发的时候遇到的问题。 错误起因 我创建了一个广告管理页面。然后发现访问一直在加载中。报的是这样…...
批量自动添加好友,高效拓展人脉圈.
随着微信使用数量的不断增加,手动添加好友成为了一项耗时且繁琐的任务。为了帮助大家解决这个问题,下面分享一款高效的微信管理系统,它能够帮助你实现批量自动添加好友,极大提升了人脉拓展的效率。 这款微信管理系统可以同时管理多…...
Web开发:一个可拖拽的模态框(HTML、CSS、JavaScript)
目录 一、需求描述 二、实现效果 三、完整代码 四、实现过程 1、HTML 页面结构 2、CSS 元素样式 3、JavaScript动态控制 (1)获取元素 (2)显示\隐藏遮罩层与模态框 (3)实现模态框拖动效果 一、需求…...
【深度学习】fooocusapi,docker,inpainting图像
基础镜像制作来源 fooocusapi接口官方写的: docker run -d --gpusall \-e NVIDIA_DRIVER_CAPABILITIEScompute,utility \-e NVIDIA_VISIBLE_DEVICESall \-p 8888:8888 konieshadow/fooocus-api会下载一些模型,下载完后推这个镜像 docker commit 4dfd1…...
算法017:二分查找
二分查找. - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/binary-search/ 二分查找,其实是双指针的一种特殊情况,但是时间复杂度极低&#…...
谷粒商城实战笔记-37-前端基础-Vue-基本语法插件安装
文章目录 一,v-model1,双向绑定2,vue的双向绑定2.1 html元素上使用指令v-model2.2 model中声明对应属性2.3,验证view绑定modelmodel绑定view 完整代码 二,v-on1,指令简介2,在button按钮中添加v-…...
mybatis中的缓存(一级缓存、二级缓存)
文章目录 前言一、MyBatis 缓存概述二、一级缓存1_初识一级缓存2_一级缓存命中原则1_StatementId相同2_查询参数相同3_分页参数相同4_sql 语句5_环境 3_一级缓存的生命周期1_缓存的产生2_缓存的销毁3_网传的一些谣言 4_一级缓存核心源码5_总结 三、二级缓存1_开启二级缓存2_二级…...
实现自动化采购:食堂采购系统源码开发详解
本篇文章,笔者将详细介绍食堂采购系统的开发过程,从需求分析、系统设计到实现和测试,为您全面解析如何构建一个高效的自动化采购系统。 一、需求分析 1.采购计划管理 2.供应商管理 3.订单管理 4.库存管理 5.财务管理 6.数据分析与报告 …...
linux、windows、macos清空本地DNS缓存
文章目录 Linux:Windows:macOS: Linux: 对于使用systemd的操作系统(如CentOS 7、Ubuntu 16.04),可以使用以下命令重启systemd-resolved服务来清除缓存: sudo systemctl restart sys…...
领夹麦克风哪个品牌好,电脑麦克风哪个品牌好,热门麦克风推荐
在信息快速传播的时代,直播和视频创作成为了表达与交流的重要方式。对于追求卓越声音品质的创作者而言,一款性能卓越的无线麦克风宛如一把利剑。接下来,我要为大家介绍几款备受好评的无线麦克风,这些都是我在实际使用中体验良好…...
【第5章】Spring Cloud之Nacos服务注册和服务发现
文章目录 前言一、提供者1. 引入依赖2.配置 Nacos Server 地址3. 开启服务注册 二、消费者1. 引入依赖2.配置 Nacos Server 地址3. 开启服务注册 三、服务列表四、服务发现1. 获取服务列表2. 测试2.1 获取所有服务2.2 根据服务名获取服务信息 五、更多配置项总结 前言 本节通过…...
Springboot 启动时Bean的创建与注入(一)-面试热点-springboot源码解读-xunznux
Springboot 启动时Bean的创建与注入,以及对应的源码解读 文章目录 Springboot 启动时Bean的创建与注入,以及对应的源码解读构建Web项目流程图:堆栈信息:堆栈信息简介堆栈信息源码详解1、main:10, DemoApplication (com.xun.demo)2…...
单调栈(随缘复习到了,顺手刷了)
也是不知道为什么突然又复习到单调栈了,所以顺手刷了三道题,总结一下 P6503 [COCI2010-2011#3] DIFERENCIJA 思路:这题是要求每个子区间里面的最大值和最小值的差,我们一开始想的必然是纯暴力呀,但是一看这数据&#…...
学习测试10-3自动化 web自动化
web自动化 chrome驱动下载地址: https://registry.npmmirror.com/binary.html?pathchromedriver/ https://googlechromelabs.github.io/chrome-for-testing/#stable观察Google版本,下相应的驱动 运行代码试试,成功Google就会弹出 from se…...
安防视频监控EasyCVR视频汇聚平台修改配置后无法启动的原因排查与解决
安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构,兼容性强、支持多协议接入,包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…...
爬虫学习2:爬虫爬取网页的信息与图片的方法
爬虫爬取网页的信息与图片的方法 爬取人物信息 import requestshead {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0" } # 这是get请求带参数的模式…...
MySQL定时备份数据,并上传到oss
1.环境准备 1.安装阿里云的ossutil 2.安装mysql 2.编写脚本 脚本内容如下 #!/bin/bash # 数据库的配置信息,根据自己的情况进行填写 db_hostlocalhost db_usernameroot db_passwordroot db_namedb_root # oss 存贮数据的bucket地址 bucket_namerbsy-backup-buck…...
极速删除 node_modules 仅3 秒()
今天教大家如何快速删除 node_modules 依赖的一个小秘诀,告别繁琐!!! 前言 作为前端开发者,相信大家都曾经历过删除 node_modules 文件夹时的漫长等待。 尤其是在处理那些依赖库繁多的项目时,删除操作…...
vue this.$refs 动态拼接
业务需要,refs是不固定的 <vxe-grid refgridWarehouse v-bind"gridWarehouseOptions" v-if"tableHeight" :height"tableHeight":expand-config"{iconOpen: vxe-icon-square-minus, iconClose: vxe-icon-square-plus}"c…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
