华为OD机试题已经刷新到了C卷和D卷,大家要多加强练习了

唯有多加强练习才是解决之道,可以到力扣网按专项来刷题,据反馈,新改的题比之前的A、B卷难度稍微低了一点点,多刷题还是可以过的,多加油哈。

这个专栏也会不定期的更新一些新题来供大家多练习。

例如一些题型:

1、密码输入检测

        题目描述:

给定用户密码输入流input,输入流中字符'<'表示退格,可以清除前一个输入的字符,请你编写程序,输出最终得到的密码字符,并判断密码是否满足如下的密码安全要求。

密码安全要求如下:

1.密码长度>=8;

2.密码至少需要包含1个大写字母;

3.密码至少需要包含1个小写字母;

4.密码至少需要包含1个数字;

5.密码至少需要包含1个字母和数字以外的非空白特殊字符

注意空串退格后仍然为空串,且用户输入的字符串不包含‘<’字符和空白字符。

        

代码已给出:

C++代码实现: 【华为OD】 C卷真题 100%通过:密码输入检测,C++代码实现-CSDN博客

Python代码实现:【华为OD】 C卷真题 100%通过:密码输入检测,Python 代码实现-CSDN博客

2、找座位

        题目描述:

在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下,最多还能坐下多少名观众。

输入描述

一个数组,用来标识某一排座位中,每个座位是否已经坐人。0表示该座位没有坐人,1表示该座位已经坐人。

输出描述

整数,在不移动现有观众座位的情况下,最多还能坐下多少名观众。

代码已给出:

C++代码实现:

【华为OD】C卷真题 100% 通过:找座位,解题思路及代码,C++代码实现-CSDN博客

Python代码实现:

【华为OD】C卷真题 100% 通过:找座位,解题思路及代码,Python代码实现-CSDN博客

3、转盘寿司

        题目描述:

寿司店周年庆,正在举办优惠活动回馈新老客户。

寿司转盘上总共有n盘寿司,prices[i]是第i盘寿司的价格,如果客户选择了第i盘寿司,寿司店免费赠送客户距离第i盘寿司最近的下一盘寿司 j,前提是prices[j] < prices[i],如果没有满足条件的 j,则不赠送寿司。

每个价格的寿司都可无限供应

输入描述

输入的每一个数字代表每盘寿司的价格,每盘寿司的价格之间使用空格分隔,
例如:

3 15 6 14 

表示第0盘寿司价格prices[0]为3,第1盘寿司价格prices[1]为15,第2盘寿司价格prices[2]为6,第3盘寿司价格prices[3]为14

寿司的盘数n范围为:1 <= n <= 500
每盘寿司的价格price范围为:1 <= price <= 1000

输出描述

输出享受优惠后的一组数据,每个值表示客户选择第i盘寿司时实际得到的寿司的总价格。使用空格进行分隔,例如:

3 21 6 17

参考实现源码:

C++代码实现:

【华为OD】C卷真题 100%通过:转盘寿司 C/C++实现-CSDN博客

4、数组去重和排序

        题目描述:

  1. 给定一个乱序的数组,删除所有的重复元素,使得每个元素只出现一次,并且按照出现的次数从高到低进行排序,相同出现次数按照第一次出现顺序进行先后排序。

输入描述

一个数组

输出描述

去重排序后的数组

C++代码实现:

【华为OD】C卷真题 100%通过:数组去重和排序 C/C++实现-CSDN博客

5、需要打开多少监控器

        题目描述:

某长方形停车场,每个车位上方都有对应监控器,当且仅当在当前车位或者前后左右四个方向任意一个车位范围停车时,监控器才需要打开;

给出某一时刻停车场的停车分布,请统计最少需要打开多少个监控器;

输入描述

第一行输入m,n表示长宽,满足1

输出描述

最少需要打开监控器的数量;

6、跳房子I

        题目描述:

跳房子,也叫跳飞机,是一种世界性的儿童游戏。
游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格。跳房子的过程中,可以向前跳,也可以向后跳。
假设房子的总格数是count,小红每回合可能连续跳的步数都放在数组steps中,请问数组中是否有一种步数的组合,可以让小红两个回合跳到最后一格?如果有,请输出索引和最小的步数组合。
注意:数组中的步数可以重复,但数组中的元素不能重复使用。提供的数据保证存在满足题目要求的组合,且索引和最小的步数组合是唯一的。

输入描述

第一行输入为每回合可能连续跳的步数,它是int整数数组类型。实际字符串中整数与逗号间可能存在空格。

第二行输入为房子总格数count,它是int整数类型。

输出描述

返回索引和最小的满足要求的步数组合(顺序保持steps中原有顺序)

7、跳房子II

跳房子,也叫跳飞机,是一种世界性的儿童游戏。
游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格,然后获得一次选房子的机会,直到所有房子被选完,房子最多的人获胜。
跳房子的过程中,如果有踩线等违规行为会结束当前回合,甚至可能倒退几步。
假设房子的总格数是count,小红每回合可能连续跳的步数都放在数组steps中,请问数组中是否有一种步数的组合,可以让小红三个回合跳到最后一格?如果有,请输出索引和最小的步数组合(数据保证索引和最小的步数组合是唯一的)。

注意:数组中的步数可以重复,但数组中的元素不能重复使用。

输入描述

第一行输入为每回合可能连续跳的步数,它是int整数数组类型。实际字符串中整数与逗号间可能存在空格。

第二行输入为房子总格数count,它是int整数类型。

输出描述

返回索引和最小的满足要求的步数组合(顺序保持steps中原有顺序)

8、执行时长

为了充分发挥GPU算力,需要尽可能多的将任务交给GPU执行,现在有一个任务数组,数组元素表示在这1秒内新增的任务个数且每秒都有新增任务,假设GPU最多一次执行n个任务,一次执行耗时1秒,在保证GPU不空闲情况下,最少需要多长时间执行完成

输入描述

第一个参数为GPU一次最多执行的任务个数,取值范围[1, 10000]
第二个参数为任务数组长度,取值范围[1, 10000]
第三个参数为任务数组,数字范围[1, 10000]
 

输出描述

执行完所有任务最少需要多少秒

9、攀登者1

攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。
地图表示为一维数组,数组的索引代表水平位置,数组的高度代表相对海拔高度。其中数组元素0代表地面。
例如[0,1,2,4,3,1,0,0,1,2,3,1,2,1,0], 代表如下图所示的地图,地图中有两个山脉位置分别为 1,2,3,4,5和8,9,10,11,12,13,最高峰高度分别为 4,3。最高峰位置分别为3,10。
一个山脉可能有多座山峰(高度大于相邻位置的高度,或在地图边界且高度大于相邻的高度)。
                4
  
              +---+ 
              |   | 
              |   | 3                       3 
              |   | 
              |   +---+                   ----- 
              |       |                   |   | 
            2 |       |                 2 |   |     2 
              |       |                   |   | 
          +---+       |               ----+   |   +---+ 
          |           |               |       |   |   | 
        1 |           | 1           1 |       | 1 |   | 1 
          |           |               |       |   |   | 
      +---+           +---+       +---+       +---+   +---+ 
      |                   |       |                       | 
    0 |                   | 0   0 |                       | 0 
      |                   |       |                       | 
  +---+                   +-------+                       +---+ 
  
    0   1   2   3   4   5   6   7   8   9  10  11  12  13  14
登山时会消耗登山者的体力(整数),上山时,消耗相邻高度差两倍的体力,下坡时消耗相邻高度差一倍的体力,平地不消耗体力,登山者体力消耗到零时会有生命危险。
例如,上图所示的山峰,从索引0,走到索引1,高度差为1,需要消耗2X1=2的体力,从索引2高度2走到高度4索引3需要消耗2X2=4的体力。如果是从索引3走到索引4则消耗1X1=1的体力。
登山者想要知道一张地图中有多少座山峰

C++代码实现:

【华为OD】C卷真题 100%通过:攀登者1 C/C++源码实现-CSDN博客

...... 若有疑惑,也可以私信给答复哈

你可能感兴趣的:(华为OD,华为od,c语言,算法,c++,python)