【算法训练营】参数解析+跳石板

🌈欢迎来到Python专栏
🙋🏾‍♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生
🌏IP坐标:湖北武汉
🍉 目前技术栈:C/C++、Linux系统编程、计算机网络、数据结构、Mysql、Python(目前在学)
🍇 博客介绍:通过分享学习过程,加深知识点的掌握,也希望通过平台能认识更多同僚,如果觉得文章有帮助,请您动动发财手点点赞,本人水平有限,有不足之处欢迎大家扶正~
🍓 最后送大家一句话共勉:知不足而奋进,望远山而前行。愿大家都能早日进大厂实现财富自由~
————————————————

这里写目录标题

  • 1.参数解析
  • 2.跳石板

1.参数解析

01

参数解析: [点击跳转](https://www.nowcoder.com/practice/668603dc307e4ef4bb07bcd0615ea677?tpId=37&&tqId=21
297&rp=1&ru=/activity/oj&qru=/ta/huawei/question-ranking)

【题目解析】:
本题考察string的运用
【解题思路】:
本题通过以空格和双引号为间隔,统计参数个数。对于双引号,通过添加flag,保证双引号中的空格被输
出。
【示例代码】

#include<iostream>
#include<string>
#include<vector>
using namespace std;
void cmdLineParse(const string &str)
{
string tmp = "";
vector<string> svec;
bool flag = false; //用于判断是否处于字符串的状态
for(int i=0; i<str.size(); ++i)
{
if(str[i] == '"') //判断是否是字符串的起始或者结束
{
flag = !flag; //说明处于了字符串的状态
}
else if(str[i]==' ' && !flag) //判断参数的分隔或者是否为字符串的内容
{
svec.push_back(tmp);
tmp = "";
}
else //正常的参数内容
{
tmp += str[i]; //xcopy
}
}
svec.push_back(tmp); //追加最后一个参数
cout<<svec.size()<<endl;
for(int i=0; i<svec.size(); ++i)
cout<<svec[i]<<endl;
}
int main()
{
string str;
while(getline(cin, str))
{
cmdLineParse(str);
}
return 0;
}

2.跳石板

02

跳石板: 点击跳转

题解:
题目的意思是从N开始,最少需要累加几步可以变成指定的数字M,每次累加的值为当前值的一个约数。
【解题思路】:
将1 - M个石板看做一个结果数组stepNum,每个stepNum[i]储存着从起点到这一步最小的步数,其中0为不
能到达。 从起点开始对stepNum进行遍历,先求i的所有约数(即从stepNum[i]能走的步数),然后更新那
几个能到达的位置的最小步数。如果不能到达则更新为此时位置的最小步数 + 1,如果是能到达的就更新为
min(已记录的最小步数,此处的最小步数 + 1)),遍历一遍后得到结果。
【示例代码】

#include<iostream>
#include<vector>
#include<limits.h>
#include<math.h>
using namespace std;
void get_div_num(int v, vector<int>& a) {
    for (int i = 2; i <= sqrt(v); ++i) {
        if (v % i == 0) {
            a.push_back(i);
            if (v / i != i)
                a.push_back(v / i);
        }
    }
}
int Jump(int n, int m) {
    vector<int> step(m + 1, INT_MAX); //int_max表示不可达到
    step[n] = 0; //当前位置初始化
    for (int i = n; i < m; ++i) {
        if (step[i] == INT_MAX)
            continue;
        vector<int> a;
//获取i的约数,并保存
        get_div_num(i, a);
        for (int j = 0; j < a.size(); ++j) {
            if (a[j] + i <= m && step[a[j] + i] != INT_MAX) {
//需要挑选一个最小值
                step[a[j] + i] = step[a[j] + i] < step[i] + 1 ? step[a[j] + i] : step[i] + 1;
            } else if (a[j] + i <= m) {
                step[a[j] + i] = step[i] + 1;
            }
        }
    }
    return step[m] == INT_MAX ? -1 : step[m];
}
int main() {
    int n, m, min_step;
    while (cin >> n >> m) {
        min_step = Jump(n, m);
        cout << min_step << endl;
    }
    return 0;
}

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

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

相关文章

跟我一起来做一个音视频产品功能!

前言&#xff1a; 大家好&#xff0c;上来和大家汇报一下h264翻译进度&#xff0c;目前翻译完了第六章&#xff0c;第七章快翻译完了&#xff0c;马上可以翻译第八章。 在第七章翻译完了之后&#xff0c;我会做一个知识点总结出来&#xff0c;一起学习&#xff0c;一起进步&…

小程序授权获取昵称

wxml: <form bindsubmit"formsubmit"><view style"width: 90%;display: flex;margin-left: 5%;"><view class"text1">昵称&#xff1a;</view><input style"width: 150px;margin-left: 30px;margin-top: 30px;…

操作系统秋招面试题

自己在秋招过程中遇到的高频操作系统相关的面试题 内存管理 虚拟内存 虚拟内存的⽬的是为了让物理内存扩充成更⼤的逻辑内存&#xff0c;从⽽让程序获得更多的可⽤内存。 为了更好的管理内存&#xff0c;操作系统将内存抽象成地址空间。每个程序拥有⾃⼰的地址空间&#xff…

【具身智能评估1】具身视觉语言规划(EVLP)仿真环境汇总

参考论文&#xff1a;Core Challenges in Embodied Vision-Language Planning 论文作者&#xff1a;Jonathan Francis, Nariaki Kitamura, Felix Labelle, Xiaopeng Lu, Ingrid Navarro, Jean Oh 论文原文&#xff1a;https://arxiv.org/abs/2106.13948 论文出处&#xff1a;Jo…

恕我直言,大模型对齐可能无法解决安全问题,我们都被表象误导了

是否听说过“伪对齐”这一概念&#xff1f; 在大型语言模型&#xff08;LLM&#xff09;的评估中&#xff0c;研究者发现了一个引人注目的现象&#xff1a;当面对多项选择题和开放式问题时&#xff0c;模型的表现存在显著差异。这一差异根源在于模型对复杂概念的理解不够全面&…

SpringCloud 之Feign的性能优化

Feign底层默认是JDK自带的HttpURLConnection&#xff0c;它是单线程发送HTTP请求的&#xff0c;不能配置线程池&#xff0c;我们使用Okhttp或者HttpClien 朵发送http请求&#xff0c;并且它们两个都支持线程池。 常见HTTP客户端 HttpClient HttpClient 是 Apache Jakarta Comm…

数位和相等数对的最大和【教3妹学编程-算法题】数位和相等数对的最大和

3妹&#xff1a;2哥&#xff0c;你有没有看到新闻“18岁父亲为4岁儿子落户现身亲子鉴定” 2哥 : 啥&#xff1f;18岁就当爹啦&#xff1f; 3妹&#xff1a;确切的说是14岁好吧。 2哥 : 哎&#xff0c;想我30了&#xff0c; 还是个单身狗。 3妹&#xff1a;别急啊&#xff0c; 2…

mfc140u.dll丢失的解决方法,以及针对每个解决mfc140u.dll丢失办法的优缺点

在使用电脑的过程中&#xff0c;有时会遇到一些与动态链接库文件&#xff08;DLL&#xff09;相关的错误。其中&#xff0c;mfc140u.dll丢失是一种常见的问题&#xff0c;它可能导致应用程序无法正常运行。在本文中&#xff0c;我们将探讨关于mfc140u.dll丢失的解决办法&#x…

PS学习笔记——初识PS界面

文章目录 PS界面 PS界面 我使用的是PS2021&#xff0c;可能不同版本界面有所不同&#xff0c;但大体来说没有太多差异 可以看到下面这个图就是ps的主界面&#xff0c;大体分为菜单栏、选项栏、工具栏、面板、以及最中央的工作区。 ps中的操作基本都能在菜单栏中找到 可以从菜…

(c语言进阶)内存函数

一.memcpy(void* dest,void* src,int num) &#xff0c;操作单位为字节&#xff0c;完成复制且粘贴字符串 1.应用 #include <stdio.h> #include<string.h> int main() {int arr1[] { 1,2,3,4,5,6,7,8,9,10 };int arr2[20] { 0 };memcpy(arr2, arr1, 20);//从…

Source Insight 安装及使用方法

Source Insight 安装及使用方法 Source Insight 安装及使用方法Source Insight 简介Source Insigth 安装Source Insight 使用方法 Source Insight 安装及使用方法 Source Insight 简介 Source Insight是一款非常流行的程序编辑器和代码浏览器&#xff0c;它主要用于阅读、编写…

Nuxt3框架全局引用外部JS/CSS文件的相关配置方法

全局引入外部文件方法&#xff1a; 找到根目录下的nuxt.config.ts配置文件&#xff1b;然后如上图所示&#xff0c;在defineNuxtConfig配置对象下app选项节点下&#xff0c;head对象中即可配置全局需要的JS或CSS文件&#xff1b; // https://nuxt.com/docs/api/configuration/…

C# 字节数组按照指定大小拆分保存至TXT文件

1.按照4个字节拆分为一行显示示例代码 byte[] result new byte[] {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08 };using (StreamWriter writer new StreamWriter("output.txt")){for (int i 0; i < result.Length; i 4) //按照四个字节拆分{byte[] tempArray n…

计算机网络学习笔记(六):应用层(待更新)

6.2 文件传送协议FTP(File Transfer Protocol) 6.2.1 FTP概述 文件传送&#xff1a;将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中&#xff08;网络环境中的一项基本应用&#xff09; 问题引入&#xff1a;初看起来&#xff0c;在两个主机之间传送文件是很…

DAY56 647. 回文子串 + 516. 最长回文子序列

647. 回文子串 题目要求&#xff1a;给定一个字符串&#xff0c;你的任务是计算这个字符串中有多少个回文子串。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#xff0c;也会被视作不同的子串。 示例 1&#xff1a; 输入&#xff1a;"abc&q…

【机器学习 | 假设检验】那些经常被忽视但重要无比的假设检验!! 确定不来看看?(附详细案例)

&#x1f935;‍♂️ 个人主页: AI_magician &#x1f4e1;主页地址&#xff1a; 作者简介&#xff1a;CSDN内容合伙人&#xff0c;全栈领域优质创作者。 &#x1f468;‍&#x1f4bb;景愿&#xff1a;旨在于能和更多的热爱计算机的伙伴一起成长&#xff01;&#xff01;&…

云服务器安装宝塔Linux面板

最近趁双11优惠&#xff0c;买了个腾讯云轻量应用服务器&#xff0c;尝试在这上面搭建一个个人的网站。 研究了一下&#xff0c;通过宝塔软件安装的话&#xff0c;非常降低&#xff0c;上手快。 服务器配置&#xff1a; CPU 2核内存 2G云硬盘&#xff1a;50G带宽&#xff1a;…

手撕单链表(C语言)

目录 1.单链表的物理结构 2.头文件的实现 3.SList.c文件的实现 3.1尾插、创建节点 3.2打印 3.3头插 3.4尾删 3.5头删 3.6查找 3.7指定位置之前插入数据 3.8指定位置之后插入数据 3.9删除指定位置节点 3.10删除pos之后的节点 3.11销毁链表 4 所有的代码 1.单链表的物理结构 众所…

美团外卖18元神券节红包优惠券怎么抢?

美团外卖红包天天免费领取活动规则 1、每月18日可领美团外卖18元神券节红包优惠券&#xff1b; 2、每月15、16、17日可领美团外卖神券节预热12元红包优惠券&#xff1b; 3、每周星期一、星期三可领美团外卖节9元红包优惠券&#xff1b; 4、每天可领美团外卖天天神券3-7元美…

初刷leetcode题目(1)——数据结构与算法

&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️Take your time ! &#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️&#x1f636;‍&#x1f32b;️…
最新文章