空二维数组长度,剑指offer,length()函数

题目地址:

LCR 121. 寻找目标值 - 二维数组 - 力扣(LeetCode)

今天刷剑指offer 二维数组的查找,发现了一个有意思的问题。

      对于一个空的二维数组,其行列的长度分别为多少呢?

例如:int [][]plants = {{}};

  int [][]plants={{}};
        System.out.println(plants.length+" "+plants[0].length);

行长度palnts.length 和列长度 plants[0].length 分别为多少?

答案是 1 和 0 。

仔细想想,palnts.length若等于0不就变成一维数组了吗?对吧

回到题目

当数组为空时
plants.length=1,可以理解为强制最小取1
plants[i].length=0,此时下标i 什么都不能取,包括0,因为数组是空的

因此,解决方法:
1、在函数最前面先判断数组是否为空即palnts==null或者palnts.length是否=0


    if(plants==null||plants.length==0) return false;

顺序不可调换,若palnts.length==0在前面,则会报空指针异常
2、利用逻辑运算的惰性求值或者短路原则,把plants[0].length放在逻辑符&&的右边

   while(i >= 0 && j < plants[0].length)
      
           

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值