题目描述:
给定整数数组 nums
和整数 k
,请返回数组中第 k
个最大的元素。
请注意,你需要找的是数组排序后的第 k
个最大的元素,而不是第 k
个不同的元素。
思路:
首先遍历数组元素,找到最大值索引,然后根据k的取值,将其删除,也就是所,如果k为2,就是将第一个最大元素删除,返回第二个最大元素;k为3,将其前三个最大元素删除,返回第四个最大元素
import java.util.ArrayList; import java.util.Arrays; public class findKthLargest { public static void main(String[] args){ int[] nums = {3,2,3,1,2,4,5,5,6}; findKthLargest f = new findKthLargest(); System.out.println(f.fun(nums,4)); } public int fun(int[] nums,int k){ ArrayList<Integer> arrayList = new ArrayList<>(); int nums_length = nums.length; for(int i = 0; i < nums_length; i++){ arrayList.add(nums[i]); } for(int i = 1;i < k;i++){ int index = arrayList.indexOf(getMax(arrayList)); arrayList.remove(arrayList.get(index)); } return getMax(arrayList); } public int getMax(ArrayList<Integer> arrayList){ int max = arrayList.get(0); for(int i = 0;i<arrayList.size();i++){ if(arrayList.get(i) > max){ max = arrayList.get(i); } } return max; } }
标签:最大,nums,int,arrayList,元素,数组,public From: https://www.cnblogs.com/99kol/p/16733765.html