深信服二面
深信服二面
用两个栈实现队列
// 你必须定义一个 `main()` 函数入口。
//前提已知:
struct Stack
{
    int top;     //栈顶指针
    int stacksize;//栈的大小
    int *s;      //栈底指针
};
void InitStack(Stack *s);
void Push(Stack *s, int k);
int Pop(Stack *s);
int IsStackEmpty(Stack *s);
int IsStackFull(Stack *s);
void EnQueue(Stack *s1, Stack *s2, int k)
{
  if (!IsStackFull(s1))
    Push(s1, k);
}
int DeQueue(Stack *s1, Stack*s2)
{
  int k = 0;
  InitStack(s2);
  while (!IsStackEmpty(s1))
  {
    Push(s2, Pop(s1));
  }
  if (!IsStackEmpty(s2))
    k = Pos(s2);
  return k;
}
当时考虑的还算快,2分钟就基本想到解决方案了,不过方案有点bug。
正确的方案是,入队,直接入栈s1,出队,先看栈s2是否为空,为空就将s1的元素依次出栈并压入s2,然后将s2的栈顶元素弹出即可。
TCP如何实现可靠传输
计算机网络——TCP如何做到可靠数据传输 - 特务依昂 - 博客园 (cnblogs.com)
基本上分3个点
- 校验和
 - 超时重传
 - 序列号、确认序列号
 
局部路径规划算法
主要是我自己说漏嘴了
局部路径规划算法,用到的采样的方案
分为5个步骤
- 采样,获取当前环境信息,和当前机器人位姿(速率、方向)
 - 在加速度极限内,得到一个在一小段时间内可以到达速度集合
 - 根据这个速度集合,计算出一小段时间内的移动路径
 - 基于某种评价标准打分(距离目标点的距离、和障碍物的距离、和全局规划路径的距离等)
 - 选择最优路径,将对应速度传给下位机
 
                    
                
                
            
        
浙公网安备 33010602011771号