2024-3-31 【PTA】【天梯赛】【25分】(1)

本次面试答案,以及收集到的大厂必问面试题分享:

字节跳动超高难度三面java程序员面经,大厂的面试都这么变态吗?

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

using namespace std;

int main()

{

int n,t;

cin>>n;

set s;

for(int i = 0; i<n; i++)

{

cin>>t;

set::iterator it = s.lower_bound(t);

if(it!=s.end())

{

s.insert(t);

s.erase(*it);//或者s.erase(it)也行

}

else s.insert(t);

}

cout<<s.size();

}

#include<bits/stdc++.h>

using namespace std;

int main(){

ios::sync_with_stdio(false);

set s;

int n;

cin>>n;

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

int a;

cin>>a;

if(s.upper_bound(a) != s.end()){

s.erase(s.upper_bound(a));

}

s.insert(a);

}

cout<<s.size()<<endl;

return 0;

}


在这里插入图片描述

#include

#include

#include

using namespace std;

bool cmp(float x, float y) {

if (x > y)

return true;

return false;

}

int main() {

int N, K, M;

cin >> N >> K >> M;

float* students = new float[N];

for (int i = 0; i < N; i++) {

float max = -1,min=101;

float sum = 0;

for (int j = 0; j < K; j++) {

int grade;

cin >> grade;

sum += grade;

if (max < grade)

max = grade;

if (min > grade)

min = grade;

}

sum = sum - max - min;

sum = sum / (K - 2);

students[i] = sum;

}

sort(students, students + N,cmp);

printf(“%.3f”, students[M - 1]);

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

printf(" %.3f", students[M-i-1]);

}

cout << endl;

delete[]students;

return 0;

}

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<malloc.h>

typedef struct Node{

double score;

}Node;

void shellinsert(Node *a,int n,int dk){//希尔插入函数

Node temp;

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

if(a[i].score<a[i-dk].score){

temp=a[i];

int j;

for(j=i-dk;j>=0&&a[j].score>temp.score;j-=dk){

a[j+dk]=a[j];

}

a[j+dk]=temp;

}

}

}

void shellsort(Node *a,int n){//希尔排序函数

int dk[12]={5000,2500,1000,500,250,125,75,30,15,8,4,1};

for(int i=0;i<12;i++){

shellinsert(a,n,dk[i]);

}

}

int main(){

int n,k,m;

scanf(“%d %d %d”,&n,&k,&m);

Node a[n];

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

int e;

int max=-999;//记录max

int min=999;//记录min

int sum=0;//记录和

for(int j=0;j<k;j++){

scanf(“%d”,&e);

sum+=e;

if(e>max)max=e;

if(e<min)min=e;

}

a[i].score=(sum-max-min)*1.0/(k-2);//去掉max,min

}

shellsort(a,n);

if(m>n)m=n;//注意m>n时让m等与n

int flag=0;

for(int i=n-m;i<n;i++){

if(flag==1){

printf(" %.3f",a[i].score);

}else{

flag=1;

printf(“%.3f”,a[i].score);

}

}

printf(“\n”);

return 0;

}


在这里插入图片描述

#include<bits/stdc++.h>

using namespace std;

const int N = 1e5+10;

int n;

struct people{

int sex,father=-1,mother=-1;

}peo[N];

bool st[N],flag;

void dfs(int cur,int generation)

{

if(cur==-1) return;

if(generation>5) return;

st[cur]=1;

dfs(peo[cur].father,generation+1);

dfs(peo[cur].mother,generation+1);

}

void finddfs(int cur,int generation)

{

if(cur==-1) return;

if(generation>5) return;

if(st[cur]) flag=true;

finddfs(peo[cur].father,generation+1);

finddfs(peo[cur].mother,generation+1);

}

int main()

{

cin>>n;

int id,father,mother;

string sex;

for(int i=0;i<n;i++)

{

cin>>id>>sex;

if(sex==“M”) peo[id].sex=1;

else peo[id].sex=0;

cin>>peo[id].father>>peo[id].mother;

peo[peo[id].father].sex=1;

peo[peo[id].mother].sex=0;

}

cin>>n;

int a,b;

for(int i=0;i<n;i++)

{

cin>>a>>b;

if(peo[a].sex==peo[b].sex) puts(“Never Mind”);

else{

memset(st,false,sizeof st);

dfs(a,1);

flag=false;

finddfs(b,1);

if(flag) puts(“No”);

else puts(“Yes”);

}

}

return 0;

}

#include

#include

#include

#include

using namespace std;

int result;

struct Person {

int sex;

vector parent;

};

map<int, Person> people;

void judge(int start, int end, int len) {

if (start == end)

result = 1;

if (len<4)

for (auto &i: people[start].parent)

for (auto &j: people[end].parent)

judge(i, j, len + 1);

}

int main() {

int n, m, id, father, mother;

char sex;

cin >> n;

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

cin >> id >> sex >> father >> mother;

people[id].sex=sex==‘M’ ? 1 : 0 ;

people[father].sex = 1;

if (father != -1)

people[id].parent.push_back(father);

if (mother != -1)

people[id].parent.push_back(mother);

}

cin >> m;

for (int i = 0; i < m; i++) {

cin >> father >> mother;

if (people[father].sex == people[mother].sex)

cout << “Never Mind” << endl;

else {

result = 0;

judge(father, mother, 0);

cout << (result ? “No” : “Yes”) << endl;

}

}

return 0;

}


#include

#include

#include

#include

#include

using namespace std;

int main(){

int N,Sum,sum=0;

cin>>N;

vectorres;//把所有数据存储起来

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

int num;

cin>>num;

res.push_back(num);

}

sort(res.begin(),res.end());//进行排序 先排序后分类

for(int i=0;i<N/2;i++)//总数的一半代表Introverted的人数

sum+=res[i];//计算Introverted人的活跃度

Sum=accumulate(res.begin(),res.end(),0);//总的活跃度

cout<<"Outgoing #: "<<N-N/2<<endl;

cout<<"Introverted #: "<<N/2<<endl;

cout<<"Diff = "<<abs((Sum-sum)-sum);//总的活跃度-内向型=外向型 外向型-内向型的绝对值

return 0;

}

#include<stdio.h>

#include

#include

using namespace std;

int main()

{

int i,j,n,m,k,t,l,Min=0,Max=0;

priority_queue<int,vector,greater > q;

scanf(“%d”,&n);

for(i=0;i<n;i++)

{

scanf(“%d”,&l);

q.push(l);

}

for(i=0;i<n;i++)

{

int tmp=q.top();

//printf(“%lld\n”,tmp);

Kafka进阶篇知识点

image

Kafka高级篇知识点

image

44个Kafka知识点(基础+进阶+高级)解析如下

image

由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

,n,m,k,t,l,Min=0,Max=0;

priority_queue<int,vector,greater > q;

scanf(“%d”,&n);

for(i=0;i<n;i++)

{

scanf(“%d”,&l);

q.push(l);

}

for(i=0;i<n;i++)

{

int tmp=q.top();

//printf(“%lld\n”,tmp);

Kafka进阶篇知识点

[外链图片转存中…(img-FgTu9Pf3-1715768652234)]

Kafka高级篇知识点

[外链图片转存中…(img-YPYhxDtb-1715768652235)]

44个Kafka知识点(基础+进阶+高级)解析如下

[外链图片转存中…(img-CDQQop9E-1715768652235)]

由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值