zoukankan      html  css  js  c++  java
  • 循环体(for/while)循环变量的设置

    1. 求滑动(移动)平均(moving average)

    double partialSum = 0;
    for (int i = 0; i < M-1; ++i)
        partialSum += A[i];
    
    for (int i = M-1; i < N; ++i){
        partialSum += A[i];
        ret.push_back(partialSum/3);
        partialSum -= A[i+1-M];
    }

    2. 从中间向左右

    int mid = (lo + hi)/2;
    int left = MIN, right = MIN;
    int sum = 0;
    
    for (int i = mid; i >= lo; --i)
        left = max(left, sum += A[i]);
    
    sum = 0;
    for (int i = mid+1; i <= high; ++i) 
        right = max(right, sum += A[i]);
    
    int across = left + right;

    3. 从中间向两边的方式之二

    int i = mid, j = mid+1;
    while (i > lo || j < hi){
        if (i > lo && (j == hi || h[i-1] > h[j+1])) {
            --i;
            ...
        } else {
            ++j;
        }
    }

    4. 均分两段,分别遍历

    int len = pow(2, k);
    for (int i = 0, j = len/2; i < len/2 && j < len; ++i, ++j){
        ...
    }

    5. 固定起点、设置偏移(skip 或叫 offset)

    for (int skip = 0; s + skip < S.size(); ++skip){
        ...             // 这样 skip 表示的是对 s 的相对位置;
    }
  • 相关阅读:
    位置控制
    Scaleform结合C++编程
    使用定点缓存进行绘制
    纹理
    动态规划:背包问题
    希尔排序
    折半插入排序
    快速排序
    上楼梯算法
    归并排序
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423934.html
Copyright © 2011-2022 走看看