腾讯笔试题 第一批
好像有好几套卷子 我就分享自己的
今天在公司写的代码,再不回宿舍赶不上末班车🤣提前半小时交卷了。。。
在回宿舍地铁上,好像手机不能贴代码?那我直接文字粘贴了。。。//现在已经用插入代码了
第一题 修栅栏 AC100
作者:happyGirl122
链接:https://www.nowcoder.com/discuss/226300
来源:牛客网
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,k,i,j,a[150000],b[150000],min=0,minIndex=0,temp;
cin>>n;//输入样例个数
cin>>k;//输入拔草长度
for(i=0;i<n;i++)
{
cin>>a[i];
}
for(i=0;i<k;i++)
{
min+=a[i];
}
for(i=0;i<n-k+1;i++)
{
temp=0;
for(j=i;j<i+k;j++)
{
temp+=a[j];
}
if(temp<min)
{
min=temp;minIndex=i;
}
}
minIndex++;
cout<<minIndex<<endl;
return 0;
} 第一题简直不能更简单,就不多说了
第二题 拆零件
就是那个.和X的题 我觉得我做的是对的 样例能通过 就是复杂度太高了 求大神指点
作者:happyGirl122
链接:https://www.nowcoder.com/discuss/226300
来源:牛客网
#include<bits/stdc++.h>
using namespace std;
int a[500][500],n,m,endI,endJ,success;
int visit(int i, int j)
{
if(i == endI && j == endJ)
{
success = 1;return 1;
}
if(j+1<m)
{
if(a[i][j+1]>0)
{
a[i][j+1]--;visit(i, j+1);a[i][j+1]++;
}
}
if(i+1<n)
{
if(a[i+1][j]>0)
{
a[i+1][j]--;visit(i+1, j);a[i+1][j]++;
}
}
if(j-1>=0)
{
if(a[i][j-1]>0)
{
a[i][j-1]--;visit(i, j-1);a[i][j-1]++;
}
}
if(i-1>=0)
{
if(a[i-1][j]>0)
{
a[i-1][j]--;visit(i-1, j);a[i-1][j]++;
}
}
return success;
}
void lingJian(int n,int m)
{
char temp[500];
int i,j,s1,s2,f1,f2;
gets(temp);//接收回车
for(i=0;i<n;i++)
{
gets(temp);
for(j=0;j<m;j++)
{
if(temp[j]=='.')a[i][j]=2;
else if(temp[j]=='X')a[i][j]=1;
}
}//由数字1,2构成的数组二维表已建好
cin>>s1>>s2;//起点
s1--;s2--;
//cin>>f1>>f2;//终点
cin>>endI>>endJ;
endI--;endJ--;
success=0;
if(visit(s1,s2)==1)cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
int main()
{
int t,i;
cin>>t;//输入测试用例个数
for(i=0;i<t;i++)
{
cin>>n>>m;
lingJian(n,m);
}
return 0;
}
第三题 奥利奥冰淇淋 AC 40
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
int w[101],v[101];
for(int i=0;i<n;i++)
{
cin >> w[i];
}
for(int i=0;i<n;i++)
{
cin >> v[i];
}
int res = 0;
int mi = w[0];
for(int i=1;i<n;i++)
{
if(mi > w[i]) mi = w[i];
}
res += mi;
for(int i=0;i<n;i++)
{
w[i] -= mi;
}
while(m>0)
{
for(int i=0;i<n;i++)
{
if(w[i] == 0)
{
m -= v[i];
}
else w[i]--;
}
if(m>=0) ++res;
}
cout << res;
return 0;
} 第二题我总是想改方法耽误了很久加上赶时间就提前交卷了🤣
本来想交卷就发帖,发现还没结束就先发给文件传输助手了。
求各路大神指教
