複数の選択肢の質問
ping コマンドに関係しないプロトコルは何ですか?
A: DNS
B: TCP
C: ARP
D: ICMP
B. Ping は ICMP プロトコルに基づいており、ARP と DNS を使用してルートを解決します。
a, b, c の 3 人が科目競技に参加し、各科目に 1 位、2 位、3 位の順に x、y、z の得点が与えられ、a は 22 点、b と c は 22 点を獲得することがわかります。数学で9点、bが1位なのですが、質問させてください どのような結果が導き出されますか?
条件不足
完全な二分木ノードが 768 個あるとすると、葉ノードはいくつあるでしょうか?
偶数 (n1 = 1): n0= n/2;
奇数 (n1 = 0): n0=(n+1)/2;
プログラミングに関する質問
2 つの数値の合計
アイデア: 以下のように
vector<int> twoSum(vector<int>& nums, int target) {
unordered_map<int, int> mp;
for(int j = 0; j < nums.size();j++){
auto it = mp.find(target - nums[j];
if( it != mp.end())
return {
it->second, j};
mp[nums[j]] = j;
}
return {
};
}
スタックの並べ替えに関する
質問:
最小の要素がスタックの先頭になるようにスタックを並べ替えます。データを保存するために最大でも別の一時スタックを 1 つ使用できますが、要素を他のデータ構造 (配列など) にコピーしてはなりません。
https://blog.csdn.net/jiaomubai/article/details/102319275
解決策:
メイン スタックの最上位要素が補助スタックの最上位要素より大きくならないまで、メイン スタックから補助スタックを順番にプッシュし (補助スタック要素を上から下への降順に保ちます)、メイン スタックの要素を取り出し
ます最初にスタックし、その後補助スタック要素のプッシュを続けます。補助スタックの最上位要素がこの要素より小さくなるまでスタックをメイン スタックにポップし、その後
メイン スタックから補助スタックにプッシュし続けて循環します。
//stack1为主栈,stack2为辅助栈
stack<int> sort(stack<int> stack1){
stack<int> stack2;
while (!stack1.empty()){
int temp = stack1.top();
stack1.pop();
//如果辅助栈不为空且当前元素比辅助栈栈顶元素小,则将辅助栈中元素弹出压入主栈中
while (!stack2.empty() && stack2.top() > temp){
stack1.push(stack2.top());
stack2.pop();
}
//如果辅助栈为空或者当前元素比辅助栈栈顶元素大,则将当前元素直接压入辅助栈中
stack2.push(temp);
}
return stack2;
}