[笔试训练](十)

目录

028:最长回文子串

029:买卖股票的最好时机(一)

030:过河卒


028:最长回文子串

最长回文子串_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

1.中心扩展算法:

  • 每个字符都可以尝试作为中心点看,会出现两种情况:可能是类似 aba 的字符串,也可能是类似 abba 的情况
  • 只需要分别计算出以一个和两个字符作为中心点的子串,取出较大的长度即可
    • 从left到right开始向两边扩散、比较,如果相等则继续扩散比较
    • 如果不相等则剪枝,不用再继续扩散比较
  • 计算每次比较的回文子串长度,取最大

class Solution {
public:

    int getLongestPalindrome(string s) 
    {
        //中心扩展算法
        int n=s.size();

        int ret=0;
        for(int i=0;i<n;i++) //枚举中心点
        {
            //长度为奇数时
            int left=i-1,right=i+1;
            while(left>=0 && right<=n-1 && s[left]==s[right])
            {
                left--;
                right++;
            }
            ret=max(ret,right-left-1);

            //长度为偶数
            left=i,right=i+1;
            while(left>=0 && right<=n-1 && s[left]==s[right])
            {
                left--;
                right++;
            }
            ret=max(ret,right-left-1);

        }

        return ret;
        
    }
};

029:买卖股票的最好时机(一)

买卖股票的最好时机(一)_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

贪心:边遍历边固定最小价格为买入点,当天为卖出点,同时更新维护最大利润。

#include <iostream>
using namespace std;
const int MAX=1e5+5;
int main() 
{
    int prices[MAX]={0};
    int n=0;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>prices[i];
    }

    int maxpro=-0x3f3f3f3f,minpri=0x3f3f3f3f;
    for(int i=0;i<n;i++)
    {
        minpri=min(minpri,prices[i]);  //下标i之前的最小价格
        maxpro=max(maxpro,prices[i]-minpri);  //到当天的为止的最大利润
    }
    cout<<maxpro<<endl;
    return 0;
}

030:过河卒

[NOIP2002 普及组] 过河卒_牛客题霸_牛客网 (nowcoder.com)

题目:

题解:

动态规划-路径类:

 1.状态表示:

                dp[i][j]:从[0,0]位置出发,到达[i,j]位置一共有多少种方法

2.状态转移方程:

                dp[i][j]=0([i,j]位置有马拦时)

                dp[i][j]=dp[i-1][j]+dp[i][j-1](可以正常通行)

3.初始化:

                和原棋盘比较,多加一行一列,dp[0][1]=1,其它为0。

4.填表:

                填表时,为配合填dp表,棋盘下标和马位置整体加1,dp[n+1][m+1]为到B点时的结果。

#include <iostream>
using namespace std;
int n, m, x, y;
long long dp[25][25];

int main() {
    cin >> n >> m >> x >> y;
    x += 1;
    y += 1;
    dp[0][1] = 1;
    for (int i = 1; i <= n + 1; i++) {
        for (int j = 1; j <= m + 1; j++) {
            if (i != x && j != y && abs(i - x) + abs(j - y) == 3 || (x == i && y == j)) {
                dp[i][j] = 0;
            } else {
                dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
            }
        }
    }
    cout << dp[n + 1][m + 1] << endl;

    return 0;
}
// 64 位输出请用 printf("%lld")

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker镜像和容器操作

目录 一.Docker镜像创建与操作 1. 搜索镜像 2. 获取镜像 3. 镜像加速下载 4. 查看镜像信息 5. 查看下载的镜像文件信息 ​编辑6. 查看下载到本地的所有镜像 7. 根据镜像的唯一标识ID号&#xff0c;获取镜像详细信息 8. 为本地的镜像添加新的标签 9. 删除镜像 10. 存入…

Linux 第十一章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

BUUCTF-WEB2

[SUCTF 2019]EasySQL1 1.启动靶机 2.寻找注入点和注入方法 随便输入一个字母&#xff0c;没有回显 随便输入一个数字&#xff0c;发现有回显&#xff0c;并且回显结果一样 3.堆叠注入 1; show databases; #查看数据库 1; show tables; #查看数据表 里面有个flag 1;set …

Three.js和Cesium.js中坐标

在了解Three.js和Cesium.js前先了解并弄清楚图形学关于空间的基本概念流程&#xff1a; 计算机图形学 图形学中涉及到多个坐标空间&#xff0c;这些空间之间的变换是图形渲染中的核心部分。下面是一些常见的图形学空间及其变换顺序&#xff1a; 对象空间&#xff08;Object Sp…

【完整指南】如何在Visual Studio Code中轻松运行Llama 3模型?

Meta 发布了最新的开源语言模型Llama 3。因为它是开源的&#xff0c;你可以下载这个模型&#xff0c;并在自己的电脑上运行。 我清楚&#xff0c;你可能会想&#xff0c;在个人笔记本上运行一个拥有80亿参数的AI模型似乎只有技术高手才能做到。但别担心&#xff01;这篇文章会…

MATLAB 运算符

MATLAB 运算符 运算符是一个符号&#xff0c;告诉编译器执行特定的数学或逻辑操作。MATLAB设计为主要在整个矩阵和数组上运行。因此&#xff0c;MATLAB中的运算符既可以处理标量数据&#xff0c;也可以处理非标量数据。MATLAB允许以下类型的基本运算- 算术运算符 关系运算符…

前端复习资料

前端复习资料 落叶的位置&#xff0c;谱出一首诗&#xff0c;时间在消逝&#xff0c;我们的故事。 这篇文章呢&#xff0c;整理写给需要的前端同学的。 核心知识&#xff0c;必须掌握的&#xff0c;也是最基础的&#xff0c;譬如浏览器模型&#xff0c;渲染原理&#xff0c;JS…

网页模版如何用

现在的网页模版已经得到了许多人的喜爱和使用。随着人们对互联网的需求不断增加&#xff0c;更多的公司和组织需要拥有自己的网站&#xff0c;以推广他们的品牌和服务。而网页模版为他们提供了一个简单而高效的方法来创建自己的网站。 网页模版是预先设计好的网站模板&#xff…

【数据分析】NumPy

文章目录 [toc]ndarray的创建np.array()方法np.arange()方法np.zeros()方法np.ones()方法np.full()方法np.eye()方法np.random模块np.random.random()方法np.random.randint()方法np.random.choice()方法np.random.shuffle()方法 ndarray的属性ndarray.dtypendarray.ndimndarra…

初识BootStrap

目录 前言: 1.Bootstrap的特点包括&#xff1a; 1.1响应式设计&#xff1a; 1.2组件丰富&#xff1a; 1.3易于定制&#xff1a; 1.4兼容性良好&#xff1a; 1.5强大的社区支持&#xff1a; 1.6一致的样式和布局&#xff1a; 1.7 插件和扩展性 2.初识Ajax: 2.1同步请求…

Linux——(关于权限常见的3个问题)

文章目录 1.修改文件或者目录的拥有者和所属组1.1chown指令1.2chgrp指令 2.常见的权限三个问题2.1对应一个目录&#xff0c;如果要进入&#xff0c;需要什么权限&#xff1f;2.2为什么我们创建的文件默认权限不是7772.2.1关于Linux下的权限掩码 2.3文件能否被删除取决于什么2.3…

Paddle OCR v4 微调训练文字识别SVTRNet模型实践

文字识别步骤参考&#xff1a;https://github.com/PaddlePaddle/PaddleOCR/blob/main/doc/doc_ch/recognition.md 微调步骤参考:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7.1/doc/doc_ch/finetune.md 训练必要性 原始模型标点符号和括号容易识别不到 数据…

【kettle004】kettle访问本地MySQL数据库并处理数据至execl文件

一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 熟悉、梳理、总结下MySQL关系数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢一键三连&…

大模型微调:技术迭代与实践指南

在人工智能领域&#xff0c;大模型&#xff08;LLM&#xff09;的微调是一个关键过程&#xff0c;它使模型能够适应特定的任务和数据集。微调是深度学习中用于改进预训练模型性能的重要技术。通过在特定任务的数据集上继续训练&#xff0c;模型的权重被更新以更好地适应该任务。…

揭秘工业大模型:从人工智能小白到技术先锋

工业大模型的五个基本问题 信息化时代&#xff0c;数字化转型成为企业提升营运效率、应对经营风险和提升核心竞争力的重要途径。在此过程中&#xff0c;数据作为一种客观存在的资源&#xff0c;所产生的价值日益凸显。党的十九届四中全会从国家治理体系和治理能力现代化的高度将…

详解Qt绘图机制

Qt框架以其强大的图形界面功能著称&#xff0c;其中绘图机制是构建丰富视觉效果的关键。本文将详细介绍Qt中的绘图机制&#xff0c;包括绘图基础、绘图设备、绘图工具及高级特性&#xff0c;并通过实战C代码示例&#xff0c;带你领略Qt绘图的魅力。 绘图基础 Qt的绘图操作主要…

vs2019 - release版中_DEBUG宏生效的问题

文章目录 vs2019 - release版中_DEBUG宏生效的问题概述笔记总结END vs2019 - release版中_DEBUG宏生效的问题 概述 在加固程序&#xff0c;需要去掉PE的字符串表中和逻辑相关的字符串。 编译成release版后&#xff0c;用IDA看&#xff0c;还是发现有debug版才有的字符串。 那…

gitee关联picgo设置自己的typora_图床

一&#xff1a;去gitee官网创建仓库&#xff1a;typora_图床 1.百度搜索关键字&#xff1a;gitee&#xff0c;进入官网 2.进入gitee登录或者注册自己的账号 3.进入主页后&#xff0c;点击右上方 4.点击新建仓库 5.设置仓库名&#xff1a;typora_图床 6.点击5的创建&#xff0…

<计算机网络自顶向下> Internet Protocol(未完成)

互联网中的网络层 IP数据报格式 ver: 四个比特的版本号&#xff08;IPV4 0100, IPV6 0110&#xff09; headlen&#xff1a;head的长度&#xff08;头部长度字段&#xff08;IHL&#xff09;指定了头部的长度&#xff0c;以32位字&#xff08;4字节&#xff09;为单位计算。这…

echarts实现水滴图

使用echarts实现水滴图 引入依赖&#xff0c;echarts-liquidfill3兼容echarts5; 安装依赖 "echarts": "^5.4.3","echarts-liquidfill": "^3.1.0",npm install echarts-liquidfill3.1.0 -S实现的效果图 构建一个水滴图的页面 <tem…