最近有人问我前端用户身份验证和后端用户身份验证之间的区别(在采访中)。我无法回答他的问题。他问我你在网上看到的认证是在前端还是后端完成的,我回答后端。然后他问什么是前端认证,我无法回答。我用谷歌搜索找出答案,但无法获得两者之间的确切区别,即前端完成的操作与后端完成的操作。它们各自的使用方式、地点和原因是什么?
任何帮助,将不胜感激。
编辑:我在这里读到了一些相关内容。它谈到了一种称为双重身份验证的东西。尽管如此,我还是无法理解前端身份验证的概念。
我试图在数组中找到总和等于k的所有对,解决方案需要O(n*log(n))时间.这是代码片段 -
map<int,int> mymap;
map<int,int>::iterator it;
cin>>n>>k;
for( int i = 0 ; i < n ; i++ ){
cin>>a;
if( mymap.find(a) != mymap.end() )
mymap[a]++;
else
mymap[a] = 1;
}
for( it = mymap.begin() ; it != mymap.end() ; it++ ){
int val = it->first;
if( mymap.find(k-val) != mymap.end() ){
cnt += min( it->second, mymap.find(k-val)->second );
it->second = 0;
}
}
cout<<cnt;
Run Code Online (Sandbox Code Playgroud)
我发现很难找到总和大于或等于k的所有对.我能想到的只是一个O(n ^ 2)解决方案.O(n ^ 2)可以是通过遍历数组找到所有对的强力方法.任何人都可以帮助我找到更好的解决方案,O(n)或O(nlgn)可能(如果存在)