温锦文欧普厨电及净水器总代理 发表于 2025-1-25 01:26:37

[华为OD]最小步数找终点,逻辑简朴,送分题

#include<bits/stdc++.h>
using namespace std;
int main()
{
    vector<int> nums;
    int num;
    while(cin>>num)
    {
        nums.emplace_back(num);
    }
    int minStep=INT_MAX;
    //i表示第一步的步长
    for(int i=0;i<nums.size()/2;i++)
    {
        int j=i+nums;//i表示第一步的步长,nums,表示第二步步长
        int step=2;//此时已经跳了两步
        //没有跳到末了一步就继续跳
        while(j<nums.size()-1)
        {
            j+=nums;
            step++;
        }
        if(j==nums.size()-1)//若刚好可以跳到末了一个位置,则保留到终点的最小步数
        {minStep=min(minStep,step);}
    }
    cout<<(minStep==INT_MAX?-1:minStep)<<endl;
}
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: [华为OD]最小步数找终点,逻辑简朴,送分题