INTERVIEW #0
一、造成网络延迟的可能原因
1,WiFi所有用户上下行流量共用一个信道,当用户太多或者有人在下载大的资源时带宽不够,丢包;
2,线路质量不佳导致信噪比太低,比如光纤损耗太大等。
二、IPv6优势
1,IPv4地址不够用,IPv6有$2^{128}$个地址;
2,使用更小的路由表,转发速度更快;
3,扩充了DHCP协议,支持自动配置;安全性更高,有更好的头部格式,允许扩容......
三、找到单向无环链表的中间元素,若结点总数为偶数,返回第二个元素。
https://leetcode.com/problems/middle-of-the-linked-list/
只扫描一遍的做法:设两个指针,初始指向头结点,p1每次走两步,p2每次走一步,p1到达链尾,p2到达中间。假设链表带有头结点。
/*单链表定义*/
struct ListNode{
int val;
ListNode* next;
ListNode(int x) :val(x), next(NULL) {};
}; class Solution {
public:
ListNode * middle(ListNode* head)
{
if (head == NULL)
return NULL;
ListNode* fast = head;
ListNode* slow = head;
while (fast && fast->next)
{
fast = fast->next->next;
slow = slow->next;
}
return slow;
}
};
四、给出四个点坐标,判断是否是凸四边形
不妨扩展下该问题,给出任意n个点,判断是否凸多边形。
http://acm.hdu.edu.cn/showproblem.php?pid=2108
凸多边形就是所有内角均小于180°,方法有好几种,这里利用定点凹凸性判断:
设当前三个连续的顶点$P_0, P_1, P_2$,计算向量$P_0P_1$, $P_1P_2$的叉积,若结果为正,表示多边形顶点逆时针转;若结果为负,两向量夹角大于180°,则为凹多边形。
#define _CRT_SECURE_NO_WARNINGS #include <cstdio>
#include <vector> using namespace std; struct point {
int x, y;
}p[]; int cross_p(point a, point b,point c)
{
return (b.x - a.x) * (c.y - b.y) - (c.x - b.x) * (b.y - a.y);
} bool isConvex(int n)
{
for (int i = ; i < n; i++)
{
//叉积量值
if (cross_p(p[i], p[(i + ) % n], p[(i + ) % n]) < )
return false;
}
return true;
} int main()
{
int n; while (scanf("%d", &n) && n)
{
for (int i = ; i < n; i++)
{
scanf("%d%d", &p[i].x, &p[i].y);
}
if (isConvex(n))
printf("convex\n");
else
printf("concave\n");
} return ;
}
五、两个位数在10万位以内的数乘法
https://leetcode.com/problems/multiply-strings/
高精度乘法,模仿我们笔算的过程。每一位$res[i + j]$的构成:$res[i + j] + carry + a[i] * b[j]$,注意去掉结果的前导0。
class Solution {
public:
string multiply(string num1, string num2) {
int a[], b[], res[];
memset(a, , sizeof(a));
memset(b, , sizeof(b));
memset(res, , sizeof(res));
int lena = num1.size(), lenb = num2.size();
for (int i = ; i < lena; i++)
a[i] = num1[lena - i - ] - '';
for (int i = ; i < lenb; i++)
b[i] = num2[lenb - i - ] - '';
for (int i = ; i < lenb; i++)
{
int carry = ;
for (int j = ; j < lena; j++)
{
res[i + j] = res[i + j] + a[j] * b[i] + carry;
carry = res[i + j] / ;
res[i + j] %= ;
}
res[i + lena] = carry;
}
int len_res = lena + lenb;
//去掉结果的前导0,若结果为0,保留一个0
while (res[len_res - ] == && len_res > )
{
len_res--;
}
//使用字符串流将整数转为字符串
stringstream ans;
for (int i = len_res - ; i >= ; i--)
{
ans << res[i];
}
return ans.str();
}
};
六、其它
1,操作系统:CPU调度,用户态&内核态,IPC,各种锁,实时系统;
2,数据结构:判断有向图是否存在回路(拓扑排序、求最短路、关键路径、BFS),排序(快排、冒泡、选择、插入),链表是否有环;
3,计网:ARP、TCP/UDP、NAT、802.11ac协议,ping过程;
4,C++多态。
INTERVIEW #0的更多相关文章
- Jmeter(七)关联之JSON提取器
如果返回的数据是JSON格式的,我们可以用JSON提取器来提取需要的字段,这样更简单一点 Variable names:保存的变量名,后面使用${Variable names}引用 JSON Path ...
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
- ZAM 3D 制作3D动画字幕 用于Xaml导出
原地址-> http://www.cnblogs.com/yk250/p/5662788.html 介绍:对经常使用Blend做动画的人来说,ZAM 3D 也很好上手,专业制作3D素材的XAML ...
- 微信小程序省市区选择器对接数据库
前言,小程序本身是带有地区选着器的(网站:https://mp.weixin.qq.com/debug/wxadoc/dev/component/picker.html),由于自己开发的程序的数据是很 ...
- osg编译日志
1>------ 已启动全部重新生成: 项目: ZERO_CHECK, 配置: Debug x64 ------1> Checking Build System1> CMake do ...
- Cracking The Coding Interview 9.0
#include <iostream> #include <vector> using namespace std; void mswap(int &a, int &a ...
- Cracking The Coding Interview 2.0 单链表
#include <iostream> #include <string> using namespace std; class linklist { private: cla ...
- Pramp mock interview (4th practice): Matrix Spiral Print
March 16, 2016 Problem statement:Given a 2D array (matrix) named M, print all items of M in a spiral ...
- WCF学习系列二---【WCF Interview Questions – Part 2 翻译系列】
http://www.topwcftutorials.net/2012/09/wcf-faqs-part2.html WCF Interview Questions – Part 2 This WCF ...
随机推荐
- djangoRestFrameWork的小知识
djangoRestFrameWork的小知识 重写序列化器的save方法 有时候,.create()和.update()方法名称可能没有意义.例如,在联系表格中,我们可能没有创建新实例,而是发送了电 ...
- 【摸鱼向】UE4的AI模块探索手记(1)
前言 之前实现了自主创作的角色导入进UE4并成功控制其进行一系列动作,但目前的样子距离基本的游戏架构还差了一个很大的模块:NPC,而这部分是由电脑来进行自动控制,所以,我有一句话不知当讲不当讲(对,我 ...
- python 函数简介
一.为什么要有函数? 不加区分地将所有功能的代码垒到一起,问题是: 代码的可读性差. 代码冗余 代码可扩展性差 如何解决? 函数即工具,事先准备工具的过程是定义函数,拿来就用指的是函数调用. 什么是函 ...
- Java第二十九天,文件及目录的管理,File类
一.基础知识点 1.路径分隔符 (1)什么是路径分隔符? 这个多被应用在环境变量设置当中,例如当我设置Path环境变量时,多个环境变量的路径要用 ':'(Windows系统用封号分隔)或 ':'(Li ...
- NS网络仿真,小白起步版,双节点之间的模拟仿真(基于TCP和FTP流)
set ns [new Simulator] set tracefd [open one.tr w] #开启跟踪文件,记录分组传送的过程 $ns trace-all $tracefd set namt ...
- String、StringBuffer、StringBuilder葫芦三兄弟
今年因为疫情的原因,本打算在读研期间好好做项目,写论文,在今年9月份能找个好工作,但现在迟迟不能开学,也无法正常的给导师打工,所以干脆就打算好好准备工(fan)作(wan)的事儿. 接触Java也有好 ...
- CH5E07 划分大理石(背包dp+二进制拆分)
传送门 大意: 有价值分别为1..6的大理石各a[1..6]块,现要将它们分成两部分,使得两部分价值之和相等,问是否可以实现.其中大理石的总数不超过20000. 解题思路: 妥妥的多重背包+二 ...
- 智芯微版本的智能配变融合终端交流采集APP
1. 交采APP基本原理 通过SPI总线周期性的召测交流采集底板的“实时数据”,对“实时数据”变换.加工.统计分析得到“分析数据”和“统计数据”后,通过MQTT总线把这些数据同步到“数据中心”供其他 ...
- Java类锁和对象锁实践和内部私有锁关联
Java类锁和对象锁实践 感谢[jiehao]同学的投稿,投稿可将文章发送到tengfei@ifeve.com 类锁和对象锁是否会冲突?对象锁和私有锁是否会冲突?通过实例来进行说明. 一.相关约定 为 ...
- vue的组件缓存(返回页面不刷新)
每次使用返回是页面总是会刷新 导致了一些体验上的不愉快 现在 发现vue中的一个很方便的方法还可以用来优化性能就是: keep-alive缓存组件 <router-view v-if=" ...