题解 | #最小的K个数#

最小的K个数

http://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf


public class Solution {
    ArrayList<Integer> list = new ArrayList<>();
    int kk = -1,pp = -1;
    public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {
        if(k == 0){
            return list;
        }
        for(int i=0;i<input.length;i++){
            if(list.size() == k){
                setValue(input[i]);
            }else{
                list.add(input[i]);
            }
        }
        return list;
    }
    public void setValue(int op){
        if(kk == -1){
            for(int j=0;j<list.size();j++){
                if(kk < list.get(j)){
                    kk = list.get(j);
                    pp = j;
                }
            }
        }
        if(kk > op){
            list.set(pp,op);
            kk = -1;
        }
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务