博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二维数组中的查找:
阅读量:3937 次
发布时间:2019-05-23

本文共 1935 字,大约阅读时间需要 6 分钟。

题目描述:

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

主要考察点: 二分查找:

public class Solution {
// 过; public boolean Find2(int target, int [][] array) {
int row = array.length; for(int i=0;i
array[i][length]) // 这里可能会数组越界;空数组的length为0; // continue; // else{
// 二分查找 int left = 0; int right = length; while(left<=right){
int mid = (left+right)/2; if(target>array[i][mid]){
left = mid+1; }else if(target

基础知识:

  1. 二分查找
/**     * 二分查找普通实现。     * @param srcArray 有序数组     * @param key 查找元素     * @return  不存在返回-1     */    public static int binSearch(int srcArray[], int key) {
int mid; int start = 0; int end = srcArray.length - 1; while (start <= end) {
mid = (end - start) / 2 + start; if (key < srcArray[mid]) {
end = mid - 1; } else if (key > srcArray[mid]) {
start = mid + 1; } else {
return mid; } } return -1; }/** * 二分查找递归实现。 * @param srcArray 有序数组 * @param start 数组低地址下标 * @param end 数组高地址下标 * @param key 查找元素 * @return 查找元素不存在返回-1 */ public static int binSearch(int srcArray[], int start, int end, int key) {
int mid = (end - start) / 2 + start; if (srcArray[mid] == key) {
return mid; } if (start >= end) {
return -1; } else if (key > srcArray[mid]) {
return binSearch(srcArray, mid + 1, end, key); } else if (key < srcArray[mid]) {
return binSearch(srcArray, start, mid - 1, key); } return -1; }
  1. 二维空数组,[[]],第一个维度是1,第二个维度是0.不能继续减,减了 -1。数组越界错误。

转载地址:http://ajywi.baihongyu.com/

你可能感兴趣的文章
python解开压缩文件6位纯数字密码
查看>>
5620系列密码清除
查看>>
vncsever-centos&debian
查看>>
华为snmp模板
查看>>
华为wlan模板
查看>>
kvm&xen挂载镜像文件
查看>>
华为路由器配置NAT使内网用户通过外网IP地址方式访问内网服务器示例
查看>>
virt命令
查看>>
15个保障服务器安全的方法:
查看>>
在VMware Workstation 中部署VCSA6.5
查看>>
openstack&ceph
查看>>
ME60 双机热备 奇偶mac负载分担
查看>>
oracle11G安装en
查看>>
关于丢失或者损坏etc/fstab文件后
查看>>
VMware-ESXi-6.5 集成第三方驱动方法
查看>>
Oracle RAC on vSphere 安装手册v2
查看>>
V2V迁移
查看>>
BFD
查看>>
docker网络
查看>>
锐捷交换机的多对多镜像口
查看>>