选择题
ping命令不涉及什么协议?
A:DNS
B: TCP
C: ARP
D: ICMP
B,ping基于ICMP协议,解析路由会用到ARP和DNS
a、b、c三人参加学科竞赛,每个学科按一二三名次给x、y、z分,已知a得22分,b和c得9分,b是数学第一名,问你能推出什么结果?
条件不足
已知完全二叉树节点768,求叶节点多少个
偶数(n1 = 1):n0= n/2;
奇数(n1 = 0):n0=(n+1)/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 {};}
栈排序
题目:
对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。
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;
}