(3)算法综合实践——搜索引擎
1、负责公司网站 SEO 优化工作;
2、根据要求提升站点相关关键词排名 ;
3、负责实施项目优化方案,并达到目标营销效果;
4、评估、分析网站的关键词等,根据项目需要制定核心的关键词方案;
5、为客户的Google AdWords广告帐户提供广告方案;
6、根据客户市场投放策略,制定搜索引擎投放策略(包含百度、 Google 等);
7、根据投放策略,制定投放方案并负责实施投放计划;
8、根据广告投放数据调整投放策略并制定投放方案,和团队一起执行投放计划;
9、通过广告优化对账户进行调整和延展,提升广告效果;
10、每周或每月和客户沟通,进行投放分析,解决客户问题;
11、定期为客户制定报告并能够识别和处理异常数据;
12、管理及培训自己的团队,提高工作效率;
13、日常后台维护,网站改版,升级,添加模块等;
14、关注行业发展最新动态;
16、积极收集、总结客户行业特点,制定行业搜索营销计划。
(2)经典算法面试题
输入一个长度为n的数组,每个元素都不一样,并且分布在[1,n+1]区间里。找到那个missing的数字。
例如输入【1,2,3,4,5】,n=5,n+1=6,返回6,输入【2,4,6,7,1,3】,n=6,n+1=7,返回5。
这n个数字可以是无序的。
我的解法
//without checking arguments
int find(int[] a, int n)
{
int sum = (int)(((n+1)/2.0)*(n+2));
for (int i=0; i<n;i++){sum -=a[i];}
return sum;
}
但是所有数字相加可能overflow,所以更好的解法是
int find(int[] a, int n)
{
int temp;
for (int i=1; i<=n+1; i++) {temp ^=i;}
for (int i=0;i<n;i++) {temp ^=a[i];};
return temp;
}
XOR的特性是两两消去,n^n=0, 0^n=n
所以出现偶数次的数字会相互抵消,缺失的那个数只出现一次(奇数次),自然就求出来了。
位操作,硬件有对应的指令,效率也很高。