LeetCode 剑指 Offer 40

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

// 计数排序

class Solution {

public int[] getLeastNumbers(int[] arr, int k) {

int[] cnt = new int[10010];

for(int x:arr){

cnt[x]++;

}

int[] ans = new int[k];

int pos = 0;

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

if(k==0) break;

if(k>=cnt[i]){

k -= cnt[i];

for(int j=0;j<cnt[i];j++){

ans[pos++] = i;

}

}else{

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

ans[pos++] = i;

}

k = 0;

}

}

return ans;

}

}

// 快排

// class Solution {

// int ans[];

// int cnt = 0;

// void help(int[] a,int l,int r,int k){

// if(k==0) return;

// if(r-l+1 <= k){

// for(int i=l;i<=r;i++){

// ans[cnt++] = a[i];

// }

// return;

// }

// // 快排的基准值

// int base = a[l];

// int i = l, j = r;

// while(i<j){

// while(i<j && a[j]>=base) j–;

// while(i<j && a[i]<=base) i++;

// if(i<j){

// int temp = a[i];

// a[i] = a[j];

// a[j] = temp;

// }

// }

// a[l]= a[i];

// a[i] = base;

// // 小于等于基准值的个数

// int num = i-l+1;

// help(a,l,i,k);

// if(k>num){

// help(a,i+1,r,k-num);

// }

// }

// public int[] getLeastNumbers(int[] arr, int k) {

// ans = new int[k];

// help(arr,0,arr.length-1,k);

// return ans;

// }

// }

// //手工建堆

// class Solution {

// int[] ans,a;

// int n;

// // 维护小根堆的性质

// void down(int p){

// if(p>n) return;

// int left = 2p, right = 2p+1;

// int min_idx = p;

// if(left <= n && a[left]<a[min_idx]) min_idx = left;

// if(right <=n && a[right]<a[min_idx]) min_idx = right;

// if(min_idx != p){

// int temp = a[p];

// a[p] = a[min_idx];

// a[min_idx] = temp;

// down(min_idx);

// }

// }

// // 在本题中用不到

// void up(){

// }

// // 建立一个小根堆

// void buildMinHeap(){

// for(int i=n/2;i>=1;i–){

// down(i);

// }

// }

// int poll(){

// int top = a[1];

// a[1] = a[n–];

最后,附一张自己面试前准备的脑图:

image

面试前一定少不了刷题,为了方便大家复习,我分享一波个人整理的面试大全宝典

  • Java核心知识整理

image

  • Spring全家桶(实战系列)

image.png

Step3:刷题

既然是要面试,那么就少不了刷题,实际上春节回家后,哪儿也去不了,我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

以下是我私藏的面试题库:

image

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
14510137231)]

很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

最后祝愿各位身体健康,顺利拿到心仪的offer!
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值