未分類

Kth Largest Element in an Array

Kth Largest Element in an Array

Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.

For example,

Given [3,2,1,5,6,4] and k = 2, return 5.

Note:

You may assume k is always valid, 1 ? k ? array’s length.

Default:

1
2
3
func findKthLargest(nums []int, k int) int {
}

解答思路:

要從一數列中找第k大的數字,當然一看到就直接將數列由大至小做排序,然後回傳第k個位置的值就會是我們要的結果,唯一要注意的是需要檢查k是否符合範圍(1~n),其它的就沒什麼大問題了。

程式碼解說:

要找第k大的數字當然一開始就直接將陣列由大至小做排序,接著判斷如果k介於1~n符合範圍的話,便直接回傳陣列上第k個位置的值,否則如果位於條件範圍之外便回傳-1

1
2
3
4
5
sort.Sort(sort.Reverse(sort.IntSlice(nums)))
if k >= 1 && k <= len(nums) {
return nums[k-1]
}
return -1

完整程式碼:

1
2
3
4
5
6
7
func findKthLargest(nums []int, k int) int {
sort.Sort(sort.Reverse(sort.IntSlice(nums)))
if k >= 1 && k <= len(nums) {
return nums[k-1]
}
return -1
}

總結:

要從一數列中找第k大的數字,做法是只要將數列由大至小做排序,該數列的第k個位置的值就會是我們要的結果,唯一要注意的是需要檢查k是否符合範圍(1~n)。

分享到