华为机试#8.25真题,求输入

1、楼梯侠
你的弹跳力很强,要爬上一个N阶楼梯,每一阶楼梯有一个任意整数作为编码的ID(可重复,无规律,和楼梯级数无关)。从第0阶开始,每一步你只有3种爬法1)向上爬一级2)向下退一级3)可以瞬间调到和当前所处台阶id相同的那级台阶(可上可下,但不能原地不动)。请输出你到达最后一级台阶所用的最少步数。注意:不能跳到楼梯外面去。

输入:
输入为整型数组,下标代表第i级台阶,对应的数组元素为该级台阶ID,数组长度取值范围[1..50000]。台阶ID取值范围:任意int
输出:
输出达到最高级台阶所用的最少步数。

样例1
输入:[1,7,7,5,1,4,4,4,3,5]
输出:3
解释:最少要3步,依次经过第0,4,3,9级台阶

样例2
输入:[1,2,3,3,3,3,3,3,3,3,3,3,2,4]
输出:3
解释:最少要3步,依次经过第0,1,12,13级台阶

样例3
输入:[1,2,3]
输出:2
解释:最少要2步,依次经过第0,1,2级台阶

样例4
输入:[1,-1,1,-1,1,-1,1,-1,1]
输出:1
解释:最少要1步,依次经过第0,8级台阶


//请实现上诉功能
int main()
{
    return 1;
}
这里main函数里 没任何的输入输出,请问下这题用scanf输入是是[1,7,7,5,1,4,4,4,3,5]这个字符串 还是 1 7 7 5 1 4 4 4 3 5的int数组呢?
如果是 是[1,7,7,5,1,4,4,4,3,5]这个字符串 还需要把字符串解析为INT数组
如果是1 7 7 5 1 4 4 4 3 5的int数组,如何知道其元素个数?
#华为机试##华为##笔试题目#
全部评论
建图深搜吧
2 回复
分享
发布于 2021-08-30 23:23
你收到面试通知了没
1 回复
分享
发布于 2021-08-28 13:59
联想
校招火热招聘中
官网直投
我也是这个题😂
点赞 回复
分享
发布于 2021-08-28 13:55
这种直接 int a[50010]; int n = 0; while(~scanf("%d", a[n])) n++; 这样不可以吗;
点赞 回复
分享
发布于 2021-08-28 20:43
f(step[i])=min(f(step[i-1]),f=f(step[i])+1
点赞 回复
分享
发布于 2021-08-29 18:42
华为25号上机考试后,到现在没收到通知,是不是就没戏了?
点赞 回复
分享
发布于 2021-08-31 10:39
BFS可解决
点赞 回复
分享
发布于 2021-09-01 00:15
BFS 解法: https://blog.csdn.net/xiaocl123/article/details/120041131?spm=1001.2014.3001.5501
点赞 回复
分享
发布于 2021-09-01 15:32
感觉像输入的还是字符串,需要从字符串解出INT数组,然后再进行解题。解题直接用DFS可以搞出来的,本地已经调过了。
点赞 回复
分享
发布于 2021-09-02 14:51
class Solution { public: int res = INT_MAX; int n; int count = 0; void dfs(vector<int> &nums, vector<bool> &flag, int index) { if (index == n-1) { res = min(res, count); } count++; flag[index] = true; if (index > 0 ) { if (!flag[index - 1]) { dfs(nums, flag, index - 1); } } if (!flag[index + 1]) { dfs(nums, flag, index + 1); } for (int i = 0; i < nums.size(); ++i) { if (nums[i] == nums[index] && !flag[i]) { dfs(nums, flag, i); } } count--; flag[index] = false; } void Func() { vector<int> nums; string str; getline(cin, str); str = str.substr(1, str.size() - 2); stringstream ss(str); string tmp; while (getline(ss, tmp, ',')) { nums.push_back(stoi(tmp)); } n = nums.size(); vector<bool> flag(n, false); dfs(nums, flag, 0); cout << res << endl; } }; int main() { Solution temp; temp.Func(); }
点赞 回复
分享
发布于 2021-09-02 16:33

相关推荐

4 49 评论
分享
牛客网
牛客企业服务