【筆試題】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;
 }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM