小红书9.19笔试

1.ac
#include <iostream>
using namespace std;
int main() {
	int a1, a2, a3, a4, x;
	cin >> a1 >> a2 >> a3 >> a4 >> x;
	int good1 = a1, good2 = a2, good3 = a3, good4 = a4;
	int tmp = 0;
	while (a1--) {
		cin >> tmp;
		if (tmp <= x) good1--;
	}
	while (a2--) {
		cin >> tmp;
		if (tmp <= x) good2--;
	}
	while (a3--) {
		cin >> tmp;
		if (tmp <= x) good3--;
	}
	while (a4--) {
		cin >> tmp;
		if (tmp <= x) good4--;
	}
	int res = min(good1, min(good2, min(good3, good4)));
	cout << res;
	return 0;
}

2.动态规划(ac)
#include <iostream>
#include <vector>
using namespace std;
int main() {
	int n, k;
	cin >> n >> k;
	vector<int> high(n);
	for (int i = 0; i < n; i++) cin >> high[i];

	vector<int> dp(n, 200000);
	dp[0] = 0;
	int cost = 0;
	for (int i = 1; i < n; i++) {
		for (int j = 1; j <= k && i - j >= 0; j++) {
			cost = max(high[i] - high[i - j], 0);
			dp[i] = min(dp[i], dp[i - j] + cost);
		}
		//cout << dp[i];
	}
	cout << dp.back();
	return 0;
}

3.ac72%
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int main() {
	int n, k;
	cin >> n >> k;
	vector<int> nums(n);
	for (int i = 0; i < n; i++) cin >> nums[i];

	int res = 0;
	unordered_map<int, int> map;
	for (int i = 0; i < n - k + 1; i++) {
		map.clear();
		map[nums[i]]++;
		for (int j = i + 1; j < n; j++) {
			if (++map[nums[j]] >= k) {
				res += (n - j);
				break;
			}
		}
	}
	cout << res;
	return 0;
}


#小红书##小红书校招##笔试##笔试题目##笔试时间#
全部评论
第三题滑动窗口能ac
点赞 回复 分享
发布于 2022-09-19 19:33 天津
第二题代码思路一样82%.。。。
点赞 回复 分享
发布于 2022-09-19 21:29 浙江
同学同花顺尝试一下吗,面试简单不造火箭,可保姆式全程跟进度,我帖子有内推
点赞 回复 分享
发布于 2022-09-25 15:03 浙江

相关推荐

斑驳不同:还为啥暴躁 假的不骂你骂谁啊
点赞 评论 收藏
分享
评论
1
2
分享
牛客网
牛客企业服务