zoukankan      html  css  js  c++  java
  • 【笔试题】2020华为笔试

    1、直角三角形个数

    华为笔试:直角三角形个数

    i+j+k=p, 0<i<=j<k, 通过解不等式,可以得到:i<p/3, j<p/2。

    测试用例:120,3;12,1

    https://www.cnblogs.com/joelwang/p/11426533.html

    https://blog.csdn.net/weixin_40790474/article/details/79354757

    2、矩阵相邻判断

    https://www.cnblogs.com/LJ-LJ/p/11455415.html

    题目描述:

    一个矩阵,5*5,取相邻(二个成员有一个边是相同的)的6个,输入一个6个成员列表,判断是否满足?

    矩阵成员如下:

    [[1,2,3,4,5],

    [11,12,13,14,15],

    [21,22,23,24,25],

    [31,32,33,34,35],

    [41,42,43,44,45]].

    输入描述:

    包含6个矩阵成员数组,如:1,2,3,4,5,11以一个空格分隔,支持多行

    1,2,3,4,5,11

    1,2,11,14,25,15

    输出描述:

    满足输出1,否则输出0,每一行输入一个输出

    1

    0

    备注:

    输入没有合法判断,每个成员不重复。

    思路分析:

    利用并查集实现。设定一个长度为6的数组,其中每个成员单独成组,接下来判断两两是否相邻,若相邻则合并为一组。最后判断是否存在孤立的组,若有则输出0,否则输出1。

    通过20%:

    #include"iostream"
    #include"vector"
    #include"algorithm"
    using namespace std;
    int main() {
     while (cin) {
      vector<int> input;
      for (int i = 0; i < 6; ++i) {
       int temp;
       cin >> temp;
       input.push_back(temp);
      }
      sort(input.begin(), input.end());
      if (input[5] > 45||input[0]<1)//0~45范围判断
       cout << 0 << endl;
      int flag = 0;
      for (int i = 1; i < 6; ++i) {
       if (input[i] - input[i - 1]>1 && flag == 0) {
        if (input[i] - input[i - 1] != 6) {
         cout << 0 << endl;
         flag = 2;
        }
        else
         flag = 1;
       }
       else if (input[i] - input[i - 1]>1 && flag == 1) {
         cout << 0 << endl;
         flag++;
       }
      }
      if (flag == 1)
       cout << 1 << endl;
     }
    }
  • 相关阅读:
    Catalan数
    完全背包
    日期问题
    01背包
    NOJ2076
    858. Prim算法求最小生成树
    839. 模拟堆
    850. Dijkstra求最短路 II
    849. Dijkstra求最短路 I
    859. Kruskal算法求最小生成树
  • 原文地址:https://www.cnblogs.com/wxl845235800/p/11456707.html
Copyright © 2011-2022 走看看