【华为笔试题汇总】2024-04-10-华为春招笔试题(第二套)-三语言题解(CPP/Python/Java)

2024-05-09 1400阅读

🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员

✨ 本系列打算持续跟新华为近期的春秋招笔试题汇总~

💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导

👏 感谢大家的订阅➕ 和 喜欢💗

📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。

文章目录

    • 🧷 01.K小姐的生日派对
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
      • 🔗 02.LYA 的生日派对邀请函传递
        • 问题描述
        • 输入格式
        • 输出格式
        • 样例输入
        • 样例输出
        • 数据范围
        • 题解
        • 参考代码
        • 📎 03.LYA 的生日蛋糕订购
          • 问题描述
          • 输入格式
          • 输出格式
          • 样例输入
          • 样例输出
          • 数据范围
          • 题解
          • 参考代码
          • 写在最后
          • 📧 KK这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 KK领取,会在飞书进行同步的跟新。

            🧷 01.K小姐的生日派对

            问题描述

            K小姐即将迎来自己的生日,为了庆祝这一天,她邀请了许多朋友来参加生日派对。派对结束后,K小姐发现有一位朋友在派对上出现的次数超过了所有朋友总出现次数的一半。K小姐很想知道这位朋友是谁,你能帮助她找出这位神秘朋友吗?

            输入格式

            输入包含一行,为一个以逗号分隔的正整数列表,表示每位朋友的编号。编号范围为 1 1 1 到 100000 100000 100000,朋友总数不超过 1000 1000 1000。

            输出格式

            输出一个整数,表示出现次数超过总出现次数一半的朋友编号。如果不存在这样的朋友,则输出 0 0 0。

            当朋友总数为偶数 n n n 时,超过总数一半意味着出现次数大于 n 2 \frac{n}{2} 2n​;当朋友总数为奇数 n n n 时,超过总数一半意味着出现次数大于 n + 1 2 \frac{n+1}{2} 2n+1​。

            样例输入

            1,2,3,2,2
            

            样例输出

            2
            

            数据范围

            • 1 ≤ 1 \leq 1≤ 朋友编号 ≤ 100000 \leq 100000 ≤100000
            • 1
              • Java
                import java.util.Scanner;
                public class Main {
                    public static void main(String[] args) {
                        Scanner sc = new Scanner(System.in);
                        String[] input = sc.nextLine().split(",");
                        int[] cnt = new int[100001];
                        int total = 0;
                        for (String x : input) {
                            int num = Integer.parseInt(x);
                            cnt[num]++;
                            total++;
                        }
                        int half = total / 2;
                        for (int i = 1; i 
                            if (cnt[i]  half) {
                                System.out.println(i);
                                return;
                            }
                        }
                        System.out.println(0);
                    }
                }
                
                • Cpp
                  #include 
                  using namespace std;
                  const int MAXN = 100001;
                  int main() {
                      int cnt[MAXN] = {0};
                      int total = 0;
                      
                      string input;
                      getline(cin, input);
                      
                      int pos = 0;
                      while (pos  half) {
                              cout 
                      public static void main(String[] args) {
                          Scanner sc = new Scanner(System.in);
                          int n = sc.nextInt(), m = sc.nextInt();
                          int[][] grid = new int[n][m];
                          for (int i = 0; i > x >> y;
                      unordered_set allowed;
                      int dept;
                      while (cin >> dept) {
                          allowed.insert(dept);
                      }
                      vector vis(n, vector(m, false));
                      vis[x][y] = true;
                      queue q;
                      q.push({x, y});
                      int ans = 0;
                      int dx[4] = {1, -1, 0, 0};
                      int dy[4] = {0, 0, 1, -1};
                      while (!q.empty()) {
                          auto [i, j] = q.front();
                          q.pop();
                          for (int k = 0; k = 0 && ni = 0 && nj > c) {
                          cal.push_back(c);
                      }
                      vector dp(high + 1, 0);
                      dp[0] = 1;
                      for (int c : cal) {
                          for (int i = c; i 
                              dp[i] += dp[i - c];
                          }
                      }
                      long long ans = 0;
                      for (int i = low; i 
                          ans += dp[i];
                      }
                      cout 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]