zoukankan      html  css  js  c++  java
  • 继续磕算法呵呵。数三退一问题。

    逻辑倒是够清晰,不过直觉告诉我方法肯定能改进。

    //初始化数组。
    boolean[] list = new boolean[500];
    for (int i = 0; i < list.length; i++) {
        list[i] = true;
    }
    
    //count用来数三,limit用来在数组里只有一个true的时候结束循环。
    int count = 0;
    int limit = 0;
    
    //如果上一次循环只数到过一次true位置,说明任务完成,跳出。
    while (limit != 1) {
        
        //每次循环重置limit。
        limit = 0;
        
        //遍历数组。
        for (int i = 0; i < list.length; i += 1) {
            
            //如果这个位置已经跳出了,就不管他接着往下遍历,否则就数一。
            if (list[i] == false)
                continue;
            else
                count++;
            
            //数到三,退一。重置count。计一个true位置。
            if (count == 3) {
                list[i] = false;
                count = 0;
                limit++;
            }
        }
    }
    
    //打印数组。不打印也行。
    for (boolean b: list) {
        System.out.println(b);
    }
    
    //遍历数组找出最后那个true,找到了就打印下标并跳出。不打印也行。
    //也可以加一个变量在循环里记住true的下标,不过这样比较好看。
    for (int i = 0; i < list.length; i++) {
        if (list[i] == true) {
            System.out.println(i);
            break;
        }
    }
    数三退一
  • 相关阅读:
    MetaNamespaceKeyFunc
    golang dlv 调式成员函数
    golang 编译 添加debug gdb
    code-generator
    k8s 自定义informer
    kube-batch ——pod 和task
    kubernetes-handbook informer
    kube batch scheduler
    k8s-scheduler-extender-example
    volcano 快速开始
  • 原文地址:https://www.cnblogs.com/chihane/p/3438898.html
Copyright © 2011-2022 走看看