8.28晚7點參加了華為的筆試,共有3道程式設計題,通過做題分析,發現自己一直是個弟弟。
把記憶中的題,寫出來,再分析一遍。
給定三角形的周長l,求滿足這個周長的直角三角形的數量。
利用雙重迴圈遍歷最短邊長,和第二長邊,並利用勾股定理來判斷是不是直角三角形(滿足直角三角形的勾股定理一定是直角三角形三邊)
1、最短邊(ausing namespace std;
//第一題
int zhijiao(int l)
} return ans;
}int main()
輸入乙個或多個陣列,每個陣列都有6個矩陣成員元素,成員元素以空格為分隔,不同陣列分行。
矩陣是5*5矩陣,判斷這六個成員函式是不是相鄰的成員(有一邊相同),如果是輸出1,如果不是輸出0;
比如說輸入:[1 2 3 4 5 15] ;[1 2 12 23 45 35] 輸出為:[1;0]
矩陣:[ 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個就說明6個,返回ture1;其他說明不相連,就返回false 0;
走迷宮:標記矩陣mark=;結構體(方向)4/8個方向;遞迴來實現迷宮回溯,(遞迴輸入:入口「本題多了乙個判斷引數」;遞迴終止條件;for4次/8次探索,每次探索都是先判斷標記,在比較判斷是否找到)
#include #include #includeusing namespace std;
int neighber(int i, int j, vectornums);
int* fin(int a);
int ret;
int a[5][5] = ,
, ,,
};int mark[5][5] = ;
bool check(vectornums)
int* fin(int a) ;
for (int i = 0; i < 5; i++)
} }b[0] = -1;
b[1] = -1;
return b;
}struct direction ;
direction d[4] = ,,, };
//int ret = 0;
int neighber(int i, int j, vectornums)
} }return ret;
}int main()
} if (!s.empty())
bool ans = check(nums);
anses.push_back(ans);
nums.clear();
num.clear();
} for (auto r : anses)
cout << r << endl;
//vectornums = ;
return 0;
}
輸入兩個整數陣列a和b,兩個陣列中的元素都是不重複(唯一)而且無序,並且ab中的元素相同,只是順序可能不一樣,舉個例子a和b。
現在想通過分別刪除a和b中的部分元素,讓a、b剩下的元素 完全相同,求a陣列中需要刪除的最少元素數。(b也要刪除相同的元素)
先對a陣列的順序進行儲存,利用hash表來,那麼b陣列相對於a陣列的順序就可以得到了,這樣的話只需要b陣列剩下的元素為遞增陣列,那麼就可以和
華為筆試題
int a nsize 其中隱藏著若干 0,其餘非 0整數,寫乙個函式 int func int a,int nsize 使a 把0移至後面,非 0整數移至 陣列前面並保持有序,返回值為原資料中第乙個元素為0 的下標。盡可能不使用輔助空間且考慮效率及異常問題,注釋規範且給出設計思路 include ...
華為筆試題
某軟體需要實現建議的cd key演算法,輸入3個正整數,以空格隔開,根據這3個整數生成cd key字串,輸出格式 x x x xxyy,包括16個字元,以短劃線分開,其中,cd key最後兩個yy是用於cd key的自校驗,確保cd key本身是合法的。cdkey使用的字元表23456789abcd...
華為筆試題
輸入描述 輸入乙個字串,字串中包含了全量字符集和已占用字符集,兩個字符集用 相連。前的字符集合為全量字符集,後的字符集為已占用字元集合。已占用字符集中的字元一定是全量字符集中的字元。字符集中的字元跟字元之間使用英文逗號分隔。字符集中的字元表示為字元加數字,字元跟數字使用英文冒號分隔,比如a 1,表示...