最后
我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。
还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。
===================================================================
第一种做用的是vector容器,调用了sort函数,然后用v.back();访问容器的最后一个元素,然后再删除
第二种做法是用优先队列,优先队列里有升序和降序两种形式,接下来做法类似。
三:知识速递 (对vector容器常用方法不熟悉的兄弟们可以点链接学习哈)
====================================================================================================
那优先队列 我就直接给出了拿着用就行,他虽然说的是队列但 访问队首元素用的是top(), 而不是front(),兄弟们如果要用的话,这个地方需要特别注意一下,其他就和正常的栈和队列的用法一样
//升序队列
priority_queue <int,vector,greater > q;
//降序队列
priority_queue <int,vector,less >q;
===================================================================
第一种做法:
#include<bits/stdc++.h>
using namespace std;
int main()
{
vectorq;
int N,M;
cin >> N >> M;
for(int i = 0; i < N; i++){
int temp;
cin >> temp;
q.push_back(temp);
}
sort(q.begin(),q.end());
if(N >= M){
for( int i = 0; i < M; i++){
if( i == M - 1)
cout << q.back();
else
cout << q.back() << ’ ';
q.pop_back();
}
}
else{
for( int i = 0; i < N; i++){
if( i == N - 1)
cout << q.back();
else
cout << q.back() << ’ ';
q.pop_back();
}
}
}
第二种做法:
#include<bits/stdc++.h>
using namespace std;
int main(){
int N,M;
priority_queue <int,vector,less >q;
cin >> N >> M;
for( int i = 0; i < N; i++ ){
int temp;
cin >> temp;
q.push(temp);
}
if( N > M){
for( int i = 0; i < M; i++){
if( i == M-1){
cout << q.top();
q.pop();
}
else{
cout << q.top() << ’ ';
q.pop();
}
最后
对于很多Java工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。
整理的这些资料希望对Java开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。
再分享一波我的Java面试真题+视频学习详解+技能进阶书籍
详解+技能进阶书籍**
[外链图片转存中…(img-H7DH8AZ4-1715798954183)]