Kth Largest Element 的问题



  •     int pivot = nums[end];
        int pos = start;
    
        for (int i = start; i < end; i++){
            //duplicate
            if (nums[i] <= pivot){
                swap(nums, pos++, i);
            }
        }
        swap(nums, pos, end);
    

    其中pivot 只能等于end, 我尝试用(start + end) / 2
    结果test case(2,1)k = 1就跑不过。
    因为在循环中,没有比较nums[end] 和pivot
    所以nums = (2,1) pos = 1
    return 1


登录后回复
 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待