一、找出数组中的倒数第k个元素
思路:分别设置两个变量i,j初始化为0,i自增直到等于k,然后两个变量同时开始自增,直到i>arr.length
此时j所指即为倒数第k个元素
#include <stdio.h>
void fun(int arr[],int index){
int i=0,j=0;
while(i!=3) {
i++;
}
while(i!=6) {
i++;
j++;
}
printf("%d",arr[j]);
}
int main(){
int arr[]={1,2,3,4,5,6};
fun(arr,3);
return 0;
}
二、查找第k大元素
public int thirdMax(int[] nums) {
PriorityQueue<Integer> queue = new PriorityQueue<>();
int max = nums[0];
for (int i = 0; i < nums.length; i++) {
if ((queue.size() < 3 || nums[i] > queue.peek()) && !queue.contains(nums[i])) {
queue.offer(nums[i]);
}
if (queue.size() > 3) {
queue.poll();
}
max = Math.max(max, nums[i]);
}
return queue.size() < 3 ? max : queue.peek();
}