leetcode:Search a 2D Matrix 【Java】
2016-03-03 14:29
639 查看
一、问题描述
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
Integers in each row are sorted from left to right.
The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
Given target =
二、问题分析
重要的是把线性下转换成矩阵元素下标
三、算法代码
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
Integers in each row are sorted from left to right.
The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ]
Given target =
3, return
true.
二、问题分析
重要的是把线性下转换成矩阵元素下标
三、算法代码
public class Solution { public boolean searchMatrix(int[][] matrix, int target) { int m = matrix.length; int n = matrix[0].length; int start = 0; int end = m * n - 1; int element = 0; while(start <= end){ int middle = (start + end)/2; element = matrix[middle / n][middle % n];//把下标转换成矩阵元素 if(element == target){ return true; } if(element < target){ start = middle + 1; }else{ end = middle - 1; } } return false; } }
相关文章推荐
- java 文件加密
- Java多线程之concurrent包(四)——Semaphore信号量
- 浅谈Java中的hashcode方法
- springmvc 创建定时任务
- 添加 tools.jar 到 eclipse
- 如何在spring新版官网下载spring框架包
- java 操作FTP进行文件操作
- Java23种设计模式之单例模式
- 【菜鸟学Java】15:JSP技术中的Model1和Model2开发模式
- [疯狂Java笔记]AWT:Dialog对话框类、FileDialog文件对话框
- JAVA的反射机制
- Spring Data JPA基本知识
- Java IDE
- mysql 查询父子关系的-java
- java及javaweb实用的第三方API方
- SpringMVC+Mybatis框架整合源码 项目
- 什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?
- java.lang.OutOfMemoryError: PermGen space及其解决方法
- java中String截取字符串
- Java性能调优以及jvm相关知识