像这两种情况,一个减1,一个不减1。
请问怎么判断什么时候应该减1,什么时候不用减1?
那要看你循环里写什么代码呀
比如数组长度是n
如果你代码里用到了[i+m]这种结构,那你循环的最大值就只能是n-m-1,否则i+m不越界了吗
同理,如果你索引用到了[i-a],那么初始值就必须从a开始,否则i-a出负数了
至于到底为什么要写i+m和i-a,这都是围绕着算法来的
比如你想相邻两个元素互相比较,那你要么比较i和i+1,要么比较i和i-1,其实算法是一样的,但是由于写法的不同,i的含义是不同的
i和i+1,那么i指代相比较的两个数里左边那个数的下标
i和i-1比较,那么i是右边那个数的下标