【笔试训练】day2

文章目录

  • 1.牛牛的快递
    • 代码:
  • 2.最小花费爬楼梯
    • 思路:
    • 代码:
  • 3.数组中两个字符串的最小距离
    • 思路:
    • 代码:

1.牛牛的快递

在这里插入图片描述
注意一个坑,首先就是加急是总共加5块,不是每千克加5块。
思路呃,没思路,无脑就行。

代码:


#include <iostream>
#include<algorithm>
#include<math.h>
using namespace std;

int main() {
   float a;
   char b;
    cin>>a>>b;
    int g=a-1;
    int ans=20+g;
    if(a-1-g>0)ans++;
   if(b=='y')ans+=5;
   cout<<ans;
   return 0;
}

2.最小花费爬楼梯

在这里插入图片描述

思路:

一眼dp.
起点有两种,一个是从0开始,一个是从1开始。用两个数组a,b分别维护这两种状态。

a[i]表示从起点爬到第i个阶梯最少要花费多少钱

要想爬到第i个阶梯,要么是从i-1阶梯爬过来的,要么是从i-2阶梯爬过来的
要注意的是,题目给的cnt[i]的意思是,第i个阶梯向上爬1或者2个阶梯的费用,而不是爬1个。(没看清题目,wa了我几发,草!)。

于是容易想到状态转移方程
a[i]=min(a[i-1]+cnt[i-1],a[i-2]+cnt[i-2])
最后的a[n]就表示从起点(1)爬到第n+1(顶部)个台阶的最少花费。b[n]同理。
最后再比较一下不同的起点爬到第n个阶梯那个方法花费最少就行了。

代码:

#include <iostream>
using namespace std;
const int N=1e5+10;
int a[N];//从1开始爬
int b[N];//从0开始爬
int c[N];//花费
int main() {
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>c[i];
    }
    a[1]=0;
    a[2]=c[1];//初始化
    for(int i=3;i<=n;i++){
        a[i]=min(a[i-1]+c[i-1],a[i-2]+c[i-2]);
    }
     b[0]=0;
     b[1]=b[0]+c[0];//初始化
    for(int i=2;i<=n;i++){
        b[i]=min(b[i-1]+c[i-1],b[i-2]+c[i-2]);
    }
    cout<<min(b[n],a[n]);
    return 0;
}

3.数组中两个字符串的最小距离

在这里插入图片描述

思路:

注意题目要求空间复杂度O(1)。先思考如果没有这个条件限制该怎么做。
无非就是用一个vector<string>把str的所有字符串找一遍,利用双指针,每找到一对str1和str2就更新一下答案,这个答案就是两个指针的距离。

不能用 vector<string>那就在每次读入的时候去处理就行了。

用两个变量存最近一次找到str1和str2的位置。再用两个变量存当前是否找到了str1和str2。
对于当前输入的str,一共有以下几种结果:

1.找到str1,记录位置
2.找到str2,记录位置
3.如果两个都找到了,就用这两个指针的距离更新答案

代码:

#include <iostream>
#include<string>
#include<algorithm>
using namespace std;

int main() {
    string a,b,c;
    int f1=0;
    int f2=0;
    int p1=0;
    int p2=0;
    int n;
    cin>>n;
    cin>>a>>b;
    
    int ans=1e9;
    for(int i=1;i<=n;i++){
        cin>>c;
        if(c==a){
            p1=i;
            f1=1;
        }else if(c==b){
            p2=i;
            f2=1;
        }

        if(f1&&f2){//两个都找到了
            ans=min(ans,abs(p2-p1));
        }
    }
   if(ans==1e9)cout<<-1;
   else cout<<ans;
    return 0;
}

如果有老铁有更简单的写法可以评论留下你的解法哦!

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

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

相关文章

Java SpringBoot基于微信小程序的高速公路服务区充电桩在线预定系统,附源码

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

6. Django 深入模板

6. 深入模板 6.1 Django模板引擎 Django内置的模板引擎包含模板上下文(亦可称为模板变量), 标签和过滤器, 各个功能说明如下: ● 模板上下文是以变量的形式写入模板文件里面, 变量值由视图函数或视图类传递所得. ● 标签是对模板上下文进行控制输出, 比如模板上下文的判断和循…

初级软件测试常见问题

1.JMeter &#xff08;1&#xff09;在http请求的时候&#xff0c;消息体数据中的数据需要用{}和“”标记起来&#xff0c;变量要用${}括起来。 &#xff08;2&#xff09;在响应断言的时候&#xff0c;要根据测试模式输出的内容来改变测试字段&#xff0c;假如输出错误可以把…

hadoop编程之工资序列化排序

数据集展示 7369SMITHCLERK79021980/12/17800207499ALLENSALESMAN76981981/2/201600300307521WARDSALESMAN76981981/2/221250500307566JONESMANAGER78391981/4/22975207654MARTINSALESMAN76981981/9/2812501400307698BLAKEMANAGER78391981/5/12850307782CLARKMANAGER78391981/…

attention and tell论文【无标题】

这个公式使用LaTeX语法表示为&#xff1a; ( i t f t o t c t ) ( σ σ σ tanh ⁡ ) T D m n , n ( E y t − 1 h t − 1 x t ) \begin{pmatrix}i_t \\f_t \\o_t \\c_t\end{pmatrix} \begin{pmatrix}\sigma \\\sigma \\\sigma \\\tanh\end{pmatrix}T_{Dmn,n}\begin{pmatri…

代码随想录Day41:动态规划Part3

Leetcode 343. 整数拆分 讲解前&#xff1a; 毫无头绪 讲解后&#xff1a; 这道题的动态思路一开始很不容易想出来&#xff0c;虽然dp数组的定义如果知道是动态规划的话估摸着可以想出来那就是很straight forward dp定义&#xff1a;一维数组dp[i], i 代表整数的值&#xf…

5.paramiko模块使用

目录 概述实践安装paramikoparamiko包括两个核心的组件paramiko有几个基础的名词 SSHClient使用常用方法例子例子2 SFTPClient类案例 结束 概述 paramiko是实现远程控制 实践 安装 pip install paramiko paramiko SSH是一个协议&#xff0c;paramiko是使用SSHv2协议(底层使…

OpenCV基本图像处理操作(一)——图像基本操作与形态学操作

环境配置地址 图像显示 import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB imgcv2.imread(cat.jpg) img_gray cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) img_gray.shape cv2.imshow("img_gray", img_gray) cv2…

Deep Learning for Single Image Super-Resolution: A Brief Review

TMM 2019 用深度学习来解决SISR问题(single image super resolution)的问题&#xff0c;从两个方面 高效的网络结构&#xff0c;efficient architectures&#xff1b;有效的优化目标&#xff0c;OPTIMIZATION OBJECTIVES&#xff1b; 问题的定义 由LR y y y恢复HR x x x&a…

c++总结笔记(一)

计算机可以将程序转化为二进制指令&#xff08;即机器码&#xff09;&#xff0c;并由CPU执行&#xff0c;CPU会按照指令的顺序依次执行每个指令。 C语言特点&#xff1a; 简洁高效可移植模块化标准化 C语言的标准 C89(C90)标准C99标准C11标准 导入 使用include导入包含…

阿里云Centos7下编译glibc

编译glibc 原来glibc版本 编译前需要的环境: CentOS7 gcc 8.3.0 gdb 8.3.0 make 4.0 binutils 2.39 (ld -v) python 3.6.8 其他看INSTALL, 但有些版本也不易太高 wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.37.tar.gz tar -zxf glibc-2.37.tar.gz cd glibc-2.37/ …

Linux中断——嵌入式Linux驱动开发

参考正点原子I.MX6U嵌入式Linux驱动开发指南 一、简介 先来简单了解一般中断的处理方法&#xff1a; ①、使能中断&#xff0c;初始化相应的寄存器。 ②、注册中断服务函数&#xff0c;也就是向 irqTable 数组的指定标号处写入中断服务函数 ③、中断发生以后进入 IRQ 中…

YOLOv8改进 添加大核卷积序列注意力机制LSK

一、Large Separable Kernel Attention论文 论文地址:2309.01439.pdf (arxiv.org) 二、Large Separable Kernel Attention注意力结构 LSK通过使用大型可分离卷积核来提升注意力机制的效果。在传统的注意力机制中,常用的是小型卷积核,如1x1卷积,来计算注意力权重和特征表示…

坦桑尼亚公司注册

哈喽大家好我是小鱼~ 很多朋友想了解坦桑尼亚公司的注册信息&#xff0c;今天来给大家分享&#xff1a; 坦桑尼亚随着投资环境的不断改善&#xff0c;成为非洲区域贸易集团成员&#xff0c;更好的为公司提供了广阔的非洲市场基础和劳动力优势&#xff0c;与20多个国家签订了避…

海外云手机怎么解决tiktok运营难题?

最近打算做TikTok的商家越来越多了&#xff0c;而做TikTok的第一步就面临如何养号、涨粉的困境&#xff0c;本文将介绍如何通过海外云手机轻松解决这些问题。 早期大家用的比较多的&#xff0c;是真机科学上网的方法。但是这种方法&#xff0c;需要自己搭建海外环境&#xff0c…

【小程序】生成短信中可点击的链接

文章目录 前言一、如何生成链接二、仔细拜读小程序开发文档文档说明1文档说明2 总结 前言 由于线上运营需求&#xff0c;需要给用户发送炮轰短信&#xff0c;用户通过短信点击链接直接跳转进入小程序 一、如何生成链接 先是找了一些三方的&#xff0c;生成的倒是快速&#xf…

BCLinux8U6系统部署oceanbase分布式数据库社区版之二、数据库服务器准备

本文是在完成步骤一、准备 OBD 中控机后的第二步&#xff0c;准备3台oceanbase分布式数据库服务器。 前序步骤&#xff1a;BCLinux8U6系统部署oceanbase分布式数据库社区版之一、准备 OBD 中控机 一、服务器配置 1、服务器硬件配置 本例采用vmware虚拟机来构建测试平台&…

c++ 多文件编程

1.结构目录 声明类:用于声明方法,方便方法管理和调用&#xff1b; 实现类:用于实现声明的方法; 应用层:调用方法使用 写过java代码的兄弟们可以这么理解&#xff1a; 声明类 为service层 实现类 为serviceimpl层 应用层 为conlloter层 2.Dome 把函数声明放在头文件xxx.h中&…

端口映射软件可以做什么? 快解析如何设置端口映射?

说到端口映射&#xff0c;首先说说nat。简单地说&#xff0c;nat就是在局域网内部网络中使用内部地址&#xff0c;而当内部节点要与外部网络进行通讯时&#xff0c;就在网关处&#xff0c;将内部地址替换成公用地址&#xff0c;从而在外部公网&#xff08;internet&#xff09;…

自定义类似微信效果Preference

1. 为自定义Preference 添加背景&#xff1a;custom_preference_background.xml <?xml version"1.0" encoding"utf-8"?> <selector xmlns:android"http://schemas.android.com/apk/res/android"><item><shape android:s…