美团笔试2023-08-19

呜呜,太菜了只会三道题;

100% 100% 100% 0% 16.7%

希望能进面试

求佬给个3,4题的思路

1. 最大限制m,求超出m的x,取模即可:

```c++

int q;

cin >> q;

while(q--) {

int m,x;

cin >> m >> x;

int ans = x % m;

if(ans == 0) ans = m;

cout<<ans<<"\n";

```

2. 数组中的数字默认加法,你可以选两个数字,把他俩之间的加法变成乘法;

选则相乘最大的即可:爆int精度用long long即可;

```c++

#include <bits/stdc++.h>

using namespace std;

#define IOS ios_base :: sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr)

typedef long long ll;

#define int ll

const int N = 2e5+9;

int a[N];

signed main() {

IOS;

int n;

cin >> n;

for(int i=1; i<=n; i++) {

cin >> a[i];

}

int maxx = 0,pos = -1;

for(int i=1; i<n; i++) {

if(maxx < a[i] * a[i+1]) {

pos = i;

maxx = a[i] * a[i+1];

}

}

int ans = maxx;

for(int i=1; i<=n; i++) {

if(i == pos || i == pos+1) continue;

else ans += a[i];

}

cout<<ans<<"\n";

return 0;

}

```

3 . 给你个字符01串,定义价值为:最少的操作次数使得,0和1不相邻,如:111000101,变成101010101或者010101010两者取最少变化次数的方案即可;n <= 2000

```c++

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

const int N = 2e3+9;

char s[N];

int main() {

    scanf("%s",s+1);

    int len = strlen(s+1);

    int ans = 0;

    for(int i=1; i<len; i++) {

        int sum1 = 0,sum2 = 0;

        int s1 = 0,s2 = 0;

        for(int j=i; j<=len; j++) {

            if(j % 2 == 1) {

                if(s[j] == '0') s1++;

                if(s[j] == '1') s2++;

            } else {

                if(s[j] == '1') s1++;

                if(s[j] == '0') s2++;

            }

            ans += min(s1,s2);

        }

    }

    cout<<ans<<"\n";

    return 0;

}

```

4.给你一个数组a,求构造出符合条件的数组b的方案数;

条件: a[i] != b[i]即 b中的任何一项不能和a相等;

数组a的和与数组b的和相等,b中的数字全是正整数;

ans对1e9+7取模

写了个爆搜结果0% 。。。

5.把数组中的数字每一项都变为众数所需要的最小次数是多少?

我只想到了,众数的个数是n或n-1,若sum % n == 0就是n,否则变成n-1个1,即可;

求大佬给个4,5题的思路和代码

#美团##美团笔试##笔试#

#美团##美团笔试##笔试#
全部评论
第五题思路差点,第四题不会dp啊
点赞 回复 分享
发布于 2023-08-19 21:21 北京
为什么我做的没有第四题
点赞 回复 分享
发布于 2023-08-19 21:36 浙江
第四题 前i个元素的和为j
点赞 回复 分享
发布于 2023-08-20 00:17 辽宁
第三题用的dp,开一个dp[n][n][2]的数组,第四题记忆化搜索本质上也是dp,开一个dp[n][sum]的数组,从最后一个元素向前找到第一个。第五题我也只过了16.67笑死
点赞 回复 分享
发布于 2023-08-20 07:08 美国
考虑一下荣耀吧,南京上海需求量大,hc多多,https://www.nowcoder.com/share/jump/219205181168962477
点赞 回复 分享
发布于 2023-08-20 08:47 江苏
大佬, 第三题思路是啥啊
点赞 回复 分享
发布于 2023-08-20 18:59 上海

相关推荐

牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
评论
6
20
分享
牛客网
牛客企业服务