問下大家這里為什么當陣列b的長度大于等于25時就會報錯
uj5u.com熱心網友回復:
while 回圈里面改成 while (i < b.length - 1) 就可以了uj5u.com熱心網友回復:
邏輯有問題因為當一直滿足
if(a[mid]==b[i])
時,i一直被遞增,而lo和hi還是和while(lo<hi)前的值一樣,這樣while(lo<hi)相當于死回圈,i必然會增大到超出b.length的范圍
這個bug重現很簡單,只要b的每個元素都相同,并且保證a[min]==b[i],i肯定會越界。
uj5u.com熱心網友回復:
我不是在if 下給lo 和 hi 重新賦值了嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/251893.html
標籤:Java SE
下一篇:前后端分離
