面试知识总结
2015-08-29 19:49
671 查看
1、认真细致。注重积累。抱着开放的心态。互联网是一个每天有新东西产生的地方。
2、不要说不会,记得说但是。可以问面试官你指的是。不要夸大自己的项目,但是又要说的很高深。说的有东西。写代码注意思考清楚再写。
3、做题的时候,先读,想相关的知识,再做,心算。
9.14cvete
1、<>和“”的区别
<>是先去标准库中寻找,再去用户定义的路径中去找
而“”则是相反
2、DES加密
DES加密是对称加密,即加密密文和解密密文是一样的,只是做了一个反变换,是分组加密,其前58位为密码部分,后面8位为奇偶校验位。破解方式为穷举法。
如2的56次方,如1台电脑1秒钟运行100万次,则也需要2000多年才能破解。总的来讲还是比较安全的。
其加密方式如下,为分组加密。
将要加密的数据以64位为单位进行分组。且分为前后32个字节两组,对后32位与密码进行结合,做为新的右半部分,原来的作为左半部分,这样重复16次,最后再做一个反置换。
解密过程则是反过来。
MD5加密是不可逆的加密,接收方只能通过逐个将数据进行加密后匹配对比,才能找出原文。
RSA是非对称加密,其公钥是公开的,秘钥是自己保留的。其安全性很高。至今还没有被破解过。
3、瀑布模型
是比较早的一种软件开发模型,其将软件开发过程分为需求分析,软件设计,程序编写,软件测试,维护运行等几个阶段,当后一个阶段出现问题,就反馈回去,再往下走,形成一个流动的结构。其问题是,软件成果只有到最后阶段才能看到,风险较大。同样错误也要到后期才能发现。
4、问题归约法
问题归约法从目标(要解决的问题)出发,逆向推理,通过一系列变换把初始问题变换为子问题集合和子子问题集合,直至最后归约为一个平凡的本原问题集合。
5、线性结构和非线性结构
常用的线性结构有:线性表,栈,队列,双队列,数组,串。
常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。
6、Unified Modeling Language (UML)又称统一建模语言
是面向对象发展的产物。
7、事务的4大特性
原子性
一致性
隔离性
持久性
8、动态交互是网页asp
9、内存分配
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改。
10、两个链表进行合并
原来头结点是有值的,因此这里定义一个头结点,指向大的,定义pcurrent为当前,head中小的指向下一个,p1,p2,while(p1&&p2)current保存,下移,之后判断是否为空。返回。
11、创建和删除索引
ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
12、组合问题
14、回数
15、网易cc删除字符
17、网易cc下单问题
/article/8613188.html
2、不要说不会,记得说但是。可以问面试官你指的是。不要夸大自己的项目,但是又要说的很高深。说的有东西。写代码注意思考清楚再写。
3、做题的时候,先读,想相关的知识,再做,心算。
9.14cvete
1、<>和“”的区别
<>是先去标准库中寻找,再去用户定义的路径中去找
而“”则是相反
2、DES加密
DES加密是对称加密,即加密密文和解密密文是一样的,只是做了一个反变换,是分组加密,其前58位为密码部分,后面8位为奇偶校验位。破解方式为穷举法。
如2的56次方,如1台电脑1秒钟运行100万次,则也需要2000多年才能破解。总的来讲还是比较安全的。
其加密方式如下,为分组加密。
将要加密的数据以64位为单位进行分组。且分为前后32个字节两组,对后32位与密码进行结合,做为新的右半部分,原来的作为左半部分,这样重复16次,最后再做一个反置换。
解密过程则是反过来。
MD5加密是不可逆的加密,接收方只能通过逐个将数据进行加密后匹配对比,才能找出原文。
RSA是非对称加密,其公钥是公开的,秘钥是自己保留的。其安全性很高。至今还没有被破解过。
3、瀑布模型
是比较早的一种软件开发模型,其将软件开发过程分为需求分析,软件设计,程序编写,软件测试,维护运行等几个阶段,当后一个阶段出现问题,就反馈回去,再往下走,形成一个流动的结构。其问题是,软件成果只有到最后阶段才能看到,风险较大。同样错误也要到后期才能发现。
4、问题归约法
问题归约法从目标(要解决的问题)出发,逆向推理,通过一系列变换把初始问题变换为子问题集合和子子问题集合,直至最后归约为一个平凡的本原问题集合。
5、线性结构和非线性结构
常用的线性结构有:线性表,栈,队列,双队列,数组,串。
常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。
6、Unified Modeling Language (UML)又称统一建模语言
是面向对象发展的产物。
7、事务的4大特性
原子性
一致性
隔离性
持久性
8、动态交互是网页asp
9、内存分配
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈,在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改。
10、两个链表进行合并
原来头结点是有值的,因此这里定义一个头结点,指向大的,定义pcurrent为当前,head中小的指向下一个,p1,p2,while(p1&&p2)current保存,下移,之后判断是否为空。返回。
11、创建和删除索引
ALTER TABLE table_name ADD INDEX index_name (column_list)
ALTER TABLE table_name ADD UNIQUE (column_list)
ALTER TABLE table_name ADD PRIMARY KEY (column_list)
ALTER TABLE table_name DROP INDEX index_name
ALTER TABLE table_name DROP PRIMARY KEY
12、组合问题
#include<iostream> #include<vector> #include<string> using namespace std; void Combination(const char* str, int number, vector<char>& result,int Num) { if(*str == '\0') { if(result.size()!=Num) return; for(vector<char>::iterator ite = result.begin(); ite != result.end(); ++ite) { cout<<*ite; } cout<<endl; return; } result.push_back(*str); Combination(str + 1, number - 1, result,Num); result.pop_back(); Combination(str + 1, number-1, result,Num); } int main() { string str; int Num; cin>>str>>Num; const char *pSrc=str.c_str(); vector<char> result; Combination(pSrc, strlen(pSrc), result,Num); system("pause"); return 0; }13、大数相乘
14、回数
15、网易cc删除字符
#include <iostream> #include <assert.h> #include <string> #include <vector> #include <set> #include <math.h> #include <algorithm> using namespace std; int strlen1(const char *a) { int count =0; while(*a) { count++; a++; } return count; } int compare1( const void* str1, const void* str2) { return strlen1((char*)str1) < strlen1((char*)str2); } int main() { int n; cin>>n; vector<const char *> vecStr; vector<string> vecTmp; string strId; for(int i=0;i<n;i++) { string a; cin>>a; vecTmp.push_back(a); } cin>>strId; for(int i=0;i<n;i++) { const char *p=vecTmp[i].c_str(); vecStr.push_back(p); } sort(vecStr.begin(), vecStr.end(), compare1); int count=0; for (int i = 0; i < vecStr.size(); ++i) { int it ; while((it = strId.find(vecStr[i]))!= -1) { strId.replace(it,strlen1(vecStr[i]),""); count++; } } cout<<count<<endl; return 0; }16、网易cc字符串组合排序
#include <iostream> #include<string> using namespace std; int main() { int n; cin>>n; int All=n; int a[26]; for(int i=0;i<26;i++) a[i]=0; int *flagout=new int ; for(int i=0;i<n;i++) { string stra,strb,strpre,str; cin>>stra>>strb>>strpre; int counta=0; int countb=0; bool flag=false; for(int j=0;j<stra.length();j++) { a[stra[j]-97]++; counta++; } for(int j=0;j<strb.length();j++) { a[strb[j]-97]++; counta++; } for(int j=0;j<strpre.length();j++) { countb++; if(a[strpre[j]-97]==0) { flag=true; break; } } if(counta!=countb) flag=true; if(flag==true) { flagout[i]=0; continue; } int P[26][100]; for(int m=0;m<26;m++) { for(int g=0;g<100;g++) P[m][g]=0; } for(int j=0;j<strpre.length();j++) { int k=P[strpre[j]-97][0]; P[strpre[j]-97][++k]=j; P[strpre[j]-97][0]=k; } for(int j=0;j<stra.length()-1;j++) { int a=stra[j]-97; int b=stra[j+1]-97; int k1=1; int k2=P[b][0]; int p1=P[a][1]; int p2=P[b][k2]; if(p1>p2) { flag=true; break; } } if(flag==true) { flagout[i]=0; continue; } for(int j=0;j<strb.length()-1;j++) { int a=strb[j]-97; int b=strb[j+1]-97; int k1=1; int k2=P[b][0]; int p1=P[a][1]; int p2=P[b][k2]; if(p1>p2) { flag=true; break; } } if(flag==true) { flagout[i]=0; continue; } flagout[i]=1; } for(int i=0;i<n;i++) cout<<flagout[i]<<endl; delete []flagout; }
17、网易cc下单问题
/article/8613188.html
#include<iostream> #include<vector> using namespace std; #define MAX(a,b) ((a)>(b)?(a):(b)) int main() { int n; cin>>n; vector<vector<int> > MaxGetValue(n,vector<int>(3,0)); vector<int> Price(n,0); vector<int> preMax(3,0); for(int i=0;i<n;i++) cin>>Price[i]; for(int i=0;i<=2;i++) preMax[i]=-Price[0]; for(int i=1;i<n;i++) { preMax[0]=MAX(preMax[0],MaxGetValue[i][0]-Price[i]); for(int t=1;t<=2;t++) { int mx=MaxGetValue[i-1][t]; mx=MAX(mx,preMax[t-1]+Price[i]); preMax[t-1]=MAX(preMax[t-1],MaxGetValue[i][t-1]-Price[i]); MaxGetValue[i][t]=mx; } } cout<<MaxGetValue[n-1][2]; }
相关文章推荐
- 【面试ing】腾讯模拟笔试
- lintCode-给出若干闭合区间,合并所有重叠的部分。
- 黑马程序员——33集合
- 剑指offer-第六章面试中的各项能力(二叉树的深度)
- 剑指offer-第六章面试中的各项能力(二叉树的深度)
- 求职就业
- 黑马程序员--Java反射
- 黑马程序员—————Java基础--------IO流(二)
- C 面试题选(一)
- 黑马程序员 反射
- 程序员面试中常见10大算法汇总
- 程序员面试中常见10大算法汇总
- 教你如何迅速秒杀掉:99%的海量数据处理面试题
- 黑马程序员——Java之内部类
- 黑马程序员--Java_IO流(二)
- C#程序员开发WinForm必须知道的 Window 消息大全(转)
- 2015/8/28的面试题
- 剑指Offer面试题:14.链表的倒数第k个节点
- 程序员面试金典1.8:判断翻转子串
- 黑马程序员——java基础——反射的定义及用法