【笔试训练】day21

2024-05-08 04:36
文章标签 笔试 训练 day21

本文主要是介绍【笔试训练】day21,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.爱丽丝的人偶

题目意思就是构造一个序列,序列的每个元素要么比左右两个高,要么比左右两个低。

可以看成是一条上下波动的曲线。

我们可以模拟波动的这个过程。

假设有一个数组,里面元素是1-n.遍历每一个位置。用一个指针pos来表示当前检查的位置,从2开始。

从2开始,看左右两边是不是都大于他或者都小于他,如果不是,说明要调整位置。

怎么调整呢?直接跟后面这个数交换就好了。

后面这个数一定比2大,所以交换之后2原来的位置的那个数一定符合要求。因为他比左右两边的数都大了。然后pos后移动。

假设n为7,具体交换过程如下:

代码:

#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;int main() {int n;cin>>n;vector<int> v(n+1);for(int i=1;i<=n;i++)v[i]=i;int pos=2;while(pos<n){if(v[pos]>v[pos-1]&&v[pos+1]>v[pos]){swap(v[pos],v[pos+1]);}pos++;}for(int i=1;i<=n;i++)cout<<v[i]<<" ";cout<<endl;return 0;  
}

2.集合

考察set的使用

代码:

#include <iostream>
#include<vector>
#include<set>
#include<queue>
using namespace std;int main() {set<int> s;int n,m;cin>>n>>m;for(int i=0;i<n+m;i++){int x;cin>>x;s.insert(x);}for(auto& it:s){cout<<it<<" ";}return 0;
}
// 64 位输出请用 printf("%lld")

3.最长回文子序列

递归或者动态规划。递归的话,用一个函数表示fun(l,r)最长的回文子序列是多少。自底向上递归。如果str[l]==str[r],说明fun(l,r)=fun(l+1,r-1)+2。因为,相同的两个字符是一定可以添加到子序列回文串的首尾两端的。如果不相等,那就往长度减一的子序列里面去找,即fun(l+1,r),或者·fun(l,r-1)。

由于题目已经交上去了,就没写递归版本的代码了。

动态规划其实就是模拟这个思路的。

从长度为1开始,逐渐扩散。

dp[l][r]表示,[l,r]的范围内的回文字符串最长能到多少。不一定这个最长序列包含str[l]和str[r].

状态转移方程与递归方程一致.

代码:

#include <iostream>
#include<string>
#include<vector>
using namespace std;int main() {string str;cin>>str;int n=str.size();vector<vector<int>> f(n+1,vector<int>(n+1));int ans=1;for(int len=1;len<=n;len++){for(int l=0;l+len-1<n;l++){int r=l+len-1;if(len==1){f[l][r]=1;continue;}if(str[l]==str[r]){f[l][r]=f[l+1][r-1]+2;}else{f[l][r]=max(f[l+1][r],f[l][r-1]);}ans=max(ans,f[l][r]);}}cout<<ans<<endl;return 0;
}

这篇关于【笔试训练】day21的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/969326

相关文章

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行介绍。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注

【秋招笔试】9.07米哈游秋招改编题-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集 100+ 套笔试题,笔试真题 会在第一时间跟新 🍄 题面描述等均已改编,如果和你笔试题看到的题面描述

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

多云架构下大模型训练的存储稳定性探索

一、多云架构与大模型训练的融合 (一)多云架构的优势与挑战 多云架构为大模型训练带来了诸多优势。首先,资源灵活性显著提高,不同的云平台可以提供不同类型的计算资源和存储服务,满足大模型训练在不同阶段的需求。例如,某些云平台可能在 GPU 计算资源上具有优势,而另一些则在存储成本或性能上表现出色,企业可以根据实际情况进行选择和组合。其次,扩展性得以增强,当大模型的规模不断扩大时,单一云平

两道笔试题

“char a='\72'”是什么意思? 这么理解:\为转义字符,\072转义为一个八进制数072,也就是十进制数的58买一送一,将转义字符对照表也一并贴给你吧:转义字符 意义 ASCII码值(十进制) \a 响铃(BEL) 007 \b 退格(BS) 008 \f 换页(FF) 012 \n 换行(LF) 010 \r 回车(CR) 013 \t 水平制表(HT) 009 \v 垂直制表(VT

华为23年笔试题

消息传输 题目描述 在给定的 m x n (1 <= m, n <= 1000) 网格地图 grid 中,分布着一些信号塔,用于区域间通信。 每个单元格可以有以下三种状态:  值 0 代表空地,无法传递信号;  值 1 代表信号塔 A,在收到消息后,信号塔 A 可以在 1ms 后将信号发送给上下左右四个方向的信号塔; 值 2 代表信号塔 B,在收到消息后,信号塔 B 可以在 2ms

实现的动态规划问题华为笔试题C++实现

秋招刷力扣题,我觉得我对动态规划不是熟练,在此处做总结 动态规划(Dynamic Programming,DP)算法通常用于求解某种具有最优性质的问题。在这类问题中,可能会有许多可行解,每一个解都对应一个值,我们希望找到具有最优值的解。我觉得最大的问题就是对问题的分解,分解后的问题与分解前的问题具有相同的决策机制,将决策机制进行抽象,最终可以得到对应的解; 动态规划中开始介绍的爬楼梯等问题,答

某公司笔试编程题

参加了某公司编程题,这些题都来自牛客网,记录总结吧! 一、蛇形矩阵 题目描述 蛇形矩阵是有1开始的自然数依次排列成的一个上三角矩阵. 接口说明 void GetResult(int Num, int* pResult);输入参数:int Num :输入的正整数N输出参数:int *pResult: 指向放蛇形矩阵的字符串指针指针指向的内存区域保证有效 样例输入: 4