20190922字节跳动,0925ebay,智力题

字节跳动

1.

20190922字节跳动,0925ebay,智力题_第1张图片

 

#include
#include
#include
#include
#include
#include
#include 
using namespace std;
#define minn 1e-9
int n;
int ans[1000001];
int main(){
	scanf("%d",&n);
	string str;
	cin>>str;
	//cout< que;
	for(int i=0;i

2.

20190922字节跳动,0925ebay,智力题_第2张图片

感觉思路对的,但是就是过0%,不知道咋回事

 

#include
#include
#include
#include
#include
#include
#include
#include 
using namespace std;
#define minn 1e-9
int t,n,m;
int a[10001];
int main(){
	scanf("%d",&t);
	while(t--){
		scanf("%d %d",&n,&m);
		priority_queue,less > pq;
		int sum=0;
		int count=0;
		for(int i=0;i>a[i];
			if(sum+a[i]<=m){
				pq.push(a[i]);
				sum=sum+a[i];
				if(i==n-1)
				printf("%d",count);
				else
				printf("%d ",count);
			}
			else{
				while(sum+a[i]>m){
					int temp=pq.top();
					pq.pop();
					sum=sum-temp;
					count++;
				}
				pq.push(a[i]);
				sum=sum+a[i];
				if(i==n-1)
				printf("%d",count);
				else
				printf("%d ",count);
			}
			//printf("sum%d \n",sum);
		}
		printf("\n");
	}
	return 0;
}

3.

拓扑排序

懒得写了

输出-1过50%。。。

#include
#include
#include
#include
#include
#include
#include
#include 
#include
using namespace std;
#define minn 1e-9
int main(){
	string line;
	int t;
	while(getline(cin,line)&&line!=""){
		stringstream ss(line);
		int i;
		ss>>i;
		//cout<

4.

20190922字节跳动,0925ebay,智力题_第3张图片

ebay

1.

20190922字节跳动,0925ebay,智力题_第4张图片

20190922字节跳动,0925ebay,智力题_第5张图片

 暴力45%

from collections import Counter
n = int(input().strip())
a = list(map(int, input().strip().split()))
m = int(input().strip())
queries = []
for _ in range(m):
	l, r = map(int, input().strip().split())
	ans = 0
	cnt = Counter(a[l-1:r])
	for key in cnt:
		if cnt[key] == 1:
			ans += 1
	print(ans)

 

from collections import Counter, defaultdict, OrderedDict

def cnt_one(c):
	ans = 0
	for key in c:
		if c[key] == 1:
			ans += 1
	return ans

n = int(input().strip())
a = list(map(int, input().strip().split()))
m = int(input().strip())
queries = defaultdict(list)
res_queries = OrderedDict()
print_queries = []
for _ in range(m):
	l, r = map(int, input().strip().split())
	queries[l].append(r)
	res_queries[(l, r)] = 0
	print_queries.append((l, r))
for key in queries:
	queries[key].sort()
	cnt = Counter()
	l = key
	for r in range(l, queries[key][-1]+1):
		cnt[a[r-1]] += 1
		if (l, r) in res_queries:
			res_queries[(l, r)] = cnt_one(cnt)
for l, r in print_queries:
	print(res_queries[(l, r)])

2.

20190922字节跳动,0925ebay,智力题_第6张图片

20190922字节跳动,0925ebay,智力题_第7张图片

智力题

1.

第一次抓第二个,不在二中,则在一三四五中,晚上只能跑到二三四五中,
第二次抓第三个,不在三中,则在二四五中,晚上跑到一三四五中,
第三次抓第四个,不在四中,则在一三五中,晚上跑到二四中,
第四次抓第四个,不在四中,则在二中,晚上跑到一三中,
第五次抓第三个,不在三中,则在一中,晚上跑到二中,
第六次抓第二个,一定能抓到。
所以最多六次就可以抓到


2.

甲乙两人射箭 只有2种情况 射中 射不中 概率都是50%。甲乙各100次 。甲作弊了,他射了101次,问甲获胜的概率

20190922字节跳动,0925ebay,智力题_第8张图片

 

你可能感兴趣的:(笔试)