SkuSelects icon indicating copy to clipboard operation
SkuSelects copied to clipboard

看了代码,有段不知道什么意思

Open jameschen4540 opened this issue 7 years ago • 1 comments

/** * 算法拆分组合 用1和0 的移位去做控制 * (这块需要你打印才能看的出来) * * @param len * @param n * @return */ private static ArrayList<Integer[]> getCombFlags(int len, int n) { if (n <= 0) { return new ArrayList<>(); } ArrayList<Integer[]> aResult = new ArrayList<>(); Integer[] aFlag = new Integer[len]; boolean bNext = true; int iCnt1 = 0; //初始化 for (int i = 0; i < len; i++) { aFlag[i] = i < n ? 1 : 0; Log.e(TAG, "getCombFlags:初始化===aFlag["+i+"]== "+ aFlag[i]); }

    aResult.add(aFlag.clone());
    while (bNext) {
        iCnt1 = 0;
        for (int i = 0; i < len - 1; i++) {
            if (aFlag[i] == 1 && aFlag[i + 1] == 0) {
                for (int j = 0; j < i; j++) {
                    aFlag[j] = j < iCnt1 ? 1 : 0;
                    Log.e(TAG, "getCombFlags:aFlag["+j+"]== "+ aFlag[j]);
                }
                aFlag[i] = 0;
                aFlag[i + 1] = 1;
                Integer[] aTmp = aFlag.clone();
                aResult.add(aTmp);
                if (!TextUtils.join("", aTmp).substring(len - n).contains("0")) {
                    bNext = false;
                }
                break;
            }
            if (aFlag[i] == 1) {
                iCnt1++;

            }
        }
    }
    Log.e(TAG, "getCombFlags:aResult=== "+aResult );
    return aResult;
}

jameschen4540 avatar Nov 02 '18 10:11 jameschen4540

这段代码的意思是拆分sku的所有可能的组合,你可以试着一个一个打印出来看看

hfkai avatar Nov 20 '18 02:11 hfkai