编辑代码

package main
import "fmt"
func main () {
    //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
    fmt.Println("Hello JSRUN!   \n\n         - from Golang .")
    nums := []int{3,2,1,5,6,4}
    res := partition(nums, 0, len(nums) - 1, 2)
    fmt.Println(res)

}

// func findKthLargest(nums []int, k int) int {
//     return partition(nums, 0, len(nums)-1, k)
// }

func partition(nums []int, l int, r int, k int) int {
    if l == r {
        return nums[l]
    }

    var i, j int = l-1, r+1
    var mid int = (l + r) / 2
    x := nums[mid]
    for i < j {
        i++
        for nums[i] > x {
            i++
        }

        j--
        for nums[i] < x {
            j--
        }

        if i < j {
            nums[i], nums[j] = nums[j], nums[i]
        }
    }
    // l, j and j+1, r
    s1 := j-l+1
    if k <= s1 {
        return partition(nums, l, j, k)
    }
    return partition(nums, j+1, r, k-s1)
}