矩阵元素查找

矩阵元素查找

http://www.nowcoder.com/questionTerminal/3afe6fabdb2c46ed98f06cfd9a20f2ce

二分查找或者顺序查找都可以,这个题有点恶心,他说行和列都是从小到大有序的结果只是行内有序,还以为整个在列上也是递增呢,恶心……
所以查找符合条件行时没办法使用二分,这里老老实实循环 ,找行中匹配元素时可以使用二分

import java.util.*;

public class Finder {

    public int[] findElement2(int[][] mat, int n, int m, int x) {
        // write code here
        if(mat[0][0]>x||mat[n-1][m-1]<x){
            return new int[] {-1,-1};
        }
        int i=0;
        while(i<n){
            if(mat[i][0]<=x&&mat[i][m-1]>=x){

                for(int j=0;j<m;j++){
                    if(mat[i][j]==x){
                        return new int[]{i,j};
                    }
                }
            }
            i++;
        }


        return new int[] {-1,-1};


    }

    public int[] findElement(int[][] mat, int n, int m, int x) {
        // write code here
            if(mat[0][0]>x||mat[n-1][m-1]<x){
            return new int[] {-1,-1};
        }
        int i=0;
        while(i<n){
            if(mat[i][0]<=x&&mat[i][m-1]>=x){

                int j=0;
                int lowJ=0;
                int highJ=m-1;
                while(lowJ<=highJ){
                    j=(highJ+lowJ)/2;
                    if(mat[i][j]>x){
                        highJ=j-1;
                    }else if(mat[i][j]<x){
                        lowJ=j+1;
                    }else{
                        return new int[]{i,j};
                    }
                }
            }
            i++;
        }


        return new int[] {-1,-1};


    }
}
全部评论
**,看了测试用例,还真的是行内有序,太坑人了,这题目乱写
点赞 回复 分享
发布于 2021-05-18 11:16
既然是行内有序,为啥楼下的答案就能通过 import java.util.*; public class Finder { public int[] findElement(int[][] mat, int n, int m, int x) { int nn = n-1; int mm = 0; while(nn >= 0 && mm <= m-1){ if(mat[nn][mm] == x) return new int[]{nn,mm}; //如果此时元素大于目标值,则nn--,往上寻找 else if(mat[nn][mm] > x) nn--; //如果此时元素小于目标值,则mm++,往右寻找 else mm++; } return new int[]{}; } }
点赞 回复 分享
发布于 2020-12-10 20:04

相关推荐

饼子吃到撑:学院本是这样的,找工作拼运气,你技术再好人家筛选学历照样沉入海底,海投就行了
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

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