【筆試題】2020華爲筆試

一、直角三角形個數

華爲筆試:直角三角形個數

i+j+k=p, 0<i<=j<k, 經過解不等式,能夠獲得:i<p/3, j<p/2。html

測試用例:120,3;12,1ios

http://www.javashuo.com/article/p-xhjquips-bb.html數組

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

二、矩陣相鄰判斷

http://www.javashuo.com/article/p-dkztjwew-bd.html測試

題目描述:url

一個矩陣,5*5,取相鄰(二個成員有一個邊是相同的)的6個,輸入一個6個成員列表,判斷是否知足?spa

矩陣成員以下:.net

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

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

[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;
 }
}
相關文章
相關標籤/搜索