インタビュー記録1

筆記試験:

1. MySQLインデックス、クエリの速度を上げる通常のインデックス、フィールドの一意性を保証する一意のインデックス

2.プライベートアドレス:ローカルエリアネットワークで使用されるアドレス、NAT-ネットワークアドレス変換ネットワークアドレス変換、パブリックネットワークアドレスに変換

3つのIPアドレスがプライベートIPアドレスとして予約されています。

クラスA:10.0.0.0 ——— 10.255.255.255

クラスB:172.16.0.0-172.31.255.255

クラスC:192.168.0.0-192.168.255.255

3.メッセージの到着時間は異なりますが、TCPメッセージはソートされますが、UDPはソートされません

4.高い対称暗号化パフォーマンス、SSL暗号化には対称暗号化と非対称暗号化が含まれます

5.二重リンクリストはノードsを挿入します

6.車が20分以内に通過する確率は84%ですが、車が10分以内に通過する確率はどれくらいですか。

P(車の通過なしで20分)= 1-84%= 0.16; 0.16 = P(車の通過なしで最初の10分)* P(車の通過なしで最後の10分); P(車の通過なしで10分)= 0.4; P(車の通過ありで10分)後)= 0.6

7.38、25、74、63、52、48 use H(Key)= Key%7線形検出法の平均検索時間は(1 + 1 + 2 + 1 + 4 + 3)/ 6 = 2、ジッパー法を使用した平均検索回数は(1 + 1 + 2 + 1 + 2 + 1)/6=1.333

8.プロセス、スレッド

9.バブルソーティングの最も複雑な時間はO(n)であり、記録は1度便利です。スワップがない場合は、1度スキャンできます。平均的な複雑度はO(n²)です。

10. 32ノードの完全なバイナリツリーの深さは6です。

11タイムスライスが使い果たされると、ブロッキング状態ではなく、準備完了状態になります。

12.ファクトリーモード

1. 最も長い部分文字列

#include<bits\stdc++.h>
using namespace std;
int fun(string s){
	int hash[256];
	fill(hash, hash+256, -1);
	int f=0,res=0;
	for(int i=0;i<s.length();i++){
		if(hash[s[i]]!=-1){
			f = i-hash[s[i]];//找到相同的就更新f 
		}
		else f = f+1;//没有相同的就直接+1 
		hash[s[i]] = i;
		res = max(res, f);
	}
	return res;
}
int main(){
	string s;
	cin>>s;
	cout<<fun(s); 
	return 0;
} 

2.文字配列の完全な配列(ああ、完全な配列は書き込めない、皿)

3. 3で割り切れる最大の合計

アイデア:O(n)、すべての結果は1回のトラバース後に追加されます。ケース①res%3 == 0②res%3 == 1(1つの3サープラス1または2つの3サープラス2が原因)③res%3 == 2(2つの3サープラス1または1つの3サープラス2による)。コードは少し醜いです

#include<iostream>
#include<string>
#include<algorithm>
#include<queue>
#include<vector>
using namespace std;
int fun(vector<int> &v){
	priority_queue<int, vector<int>, less<int> > tmp1, tmp2;
	int res=0;
	for(int i=0;i<v.size();i++){
		res = res+v[i];
		if(v[i]%3==1){
			if(tmp1.size()<2) tmp1.push(v[i]);
			else{
				if(v[i]<tmp1.top()){
					tmp1.pop();
					tmp1.push(v[i]);
				}
			}
		}
		else if(v[i]%3==2){
			if(tmp2.size()<2) tmp2.push(v[i]);
			else{
				if(v[i]<tmp2.top()){
					tmp2.pop();
					tmp2.push(v[i]);
				}
			}
		}
	}
	if(res%3==1){
		int min_yu1=999999, add_yu2=999999;
		if(tmp1.size()>=1){
			while(tmp1.size()!=0){
				min_yu1 = min(min_yu1, tmp1.top());
				tmp1.pop();
			}
		}
		if(tmp2.size()==2){
			add_yu2=0;
			while(tmp2.size()!=0){
				add_yu2 +=  tmp2.top();
				tmp2.pop();
			}
		}
		if(min_yu1!=999999 && add_yu2!=999999)
			res = res - min(min_yu1, add_yu2);
		else if(min_yu1==999999) res = res - add_yu2;
		else if(add_yu2==999999) res = res - min_yu1;
	}
	else if(res%3==2){
		int min_yu2=999999, add_yu1=999999;
		if(tmp2.size()>=1){
			while(tmp2.size()!=0){
				min_yu2 = min(min_yu2, tmp2.top());
				tmp2.pop();
			}
		}
		if(tmp1.size()==2){
			add_yu1=0;
			while(tmp1.size()!=0){
				add_yu1 +=  tmp1.top();
				tmp1.pop();
			}
		}
		if(min_yu2!=999999 && add_yu1!=999999)
			res = res - min(min_yu2, add_yu1);
		else if(min_yu2==999999) res = res - add_yu1;
		else if(add_yu1==999999) res = res - min_yu2;
	}
	return res;
}
int main(){
	//获取数据
	vector<int> vv;
	int x;
	while(~scanf("%d ", &x)){
		vv.push_back(x);
	}
	cout<<fun(vv);
	return 0;
}

 

248の元の記事を公開 29のような 30,000以上を訪問

おすすめ

転載: blog.csdn.net/weixin_38603360/article/details/105165097