好用的算法技巧2. 巧用取余

2019-06-1010:20:22数据结构与算法Comments2,003 views1字数 274阅读模式

2. 巧用取余

有时候我们在遍历数组的时候,会进行越界判断,如果下标差不多要越界了,我们就把它置为0重新遍历。特别是在一些环形的数组中,例如用数组实现的队列。往往会写出这样的代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/13541.html

for (int i = 0; i < N; i++) {
       if (pos < N) {
        //没有越界
        // 使用数组arr[pos]
        else {
          pos = 0;//置为0再使用数组
          //使用arr[pos]
         }
        pos++;
   }

实际上我们可以通过取余的方法来简化代码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/13541.html

for (int i = 0; i < N; i++) {
  //使用数组arr[pos]   (我们假设刚开始的时候pos < N)
  pos = (pos + 1) % N;
}

作者:帅地
来源:知乎文章源自菜鸟学院-https://www.cainiaoxueyuan.com/suanfa/13541.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/suanfa/13541.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定