字节跳动2019春招第一批笔试

#第一题

题目大意

有1024元钱 输入你花掉的数目问找回的硬币数最小

有64 16 4 1 的硬币

水题 代码没存 Pycharm可以恢复真是太强了

整数除硬币面额 再求和

n=input()
n=int(n)
n=1024-n
ans=0
ans+=n//64
n-=64*(n//64)
ans+=n//16
n-=16*(n//16)
ans+=n//4
ans+=(n-4*(n//4))
print(ans)

#第二题

题目大意

在字符串中有连续的三个字母要去掉一个

有连续的AABB型的  要去掉第二对中的一个字母 即AAB

匹配顺序是从左到右例如AABBCC 结果为AABCC

保存在电脑上的代码好像是AC的那一版

n=input()
n=int(n)
for _ in range(0,n):
    line=input()
    line=list(line)
    i=0
    while i

 

 

#第三题

题目大意

有n个人 围成一圈每个人都有自己的分数

规定

1.当前人的分数如果大于左右人的分数

那么也要比左右人获得更多的礼物

2.每人至少有一个礼物

求礼物数最小

有一组样例

2

5

1 2 3 4 5

5

5 4 3 2 1

结果都是15

错误解法:(待填坑)  已填

#include 
#include 
#include 
#include
#include
using namespace std;
int xx[100005];
int cc[100005];
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        cin>>n;
        int minn=10000000;
        int mini;
        int cnt=0;
        for(int i=0; ixx[(mini+1)%n] )
                    cc[mini]=max(cc[(mini-1+n)%n],cc[(mini+1)%n])+1;
                else if(xx[(mini-1+n)%n]xx[(mini+1)%n])
                    cc[mini]=cc[(mini+1)%n]+1;
                if(cc[mini]==0)
                    cc[mini]=1;
                cnt++;
                   // cout<xx[(mini+1)%n] )
                    cc[mini]=max(cc[(mini-1+n)%n],cc[(mini+1)%n])+1;
                else if(xx[(mini-1+n)%n]xx[(mini+1)%n])
                    cc[mini]=cc[(mini+1)%n]+1;
                if(cc[mini]==0)
                    cc[mini]=1;
                cnt++;
                   // cout<

#第四题

题目大意

有n根长度为Li的绳子

需要m根相同长度的绳子

问最大的相同长度是多少 二分裸题 精度一开始开了1e-5 改了1e-4过了

#include 
#include 
#include 
#include
using namespace std;
int c[100005];
int main()
{
    long long n,m;
    cin>>n>>m;
    long long sum=0;
    for(int i=0;i>c[i];
           sum+=c[i];
      }
    if(sum1e-4)
        {
            mid=(l+r)/2;
            cnt=0;
            for(int i=0;i

 

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