[알고리즘] 한 배열 이 있 습 니 다. 세 가지 요소 의 중복 횟수 가 4 분 의 1 을 초과 하여 이 세 가지 요 소 를 찾 습 니 다.

5300 단어 알고리즘
사고 방향 과 주요 요소 문제http://www.cnblogs.com/zhengyuhong/p/3652745.html
void foo(int* a, int n, int& x, int& y, int& z){

    int xCount = 0, yCount = 0, zCount = 0;

    for(int i = 0; i < n; ++i){

        if(!xCount && !yCount && !zCount){

            x = a[i];

            ++xCount;

        }

        else{

            if(!xCount){

                if(yCount && a[i]==y){

                    ++yCount;

                }

                else if(zCount && a[i] == z){

                    ++zCount;

                }

                else{

                    x = a[i];

                    ++xCount;

                }

                    

            }

            else if(!yCount){

                if(xCount && a[i]==x){

                    ++xCount;

                }

                else if(zCount && a[i] == z){

                    ++zCount;

                }

                else{

                    y = a[i];

                    ++yCount;

                }

            }

            else if(!zCount){

                if(yCount && a[i]==y){

                    ++yCount;

                }

                else if(xCount && a[i] == x){

                    ++xCount;

                }

                else{

                    z = a[i];

                    ++zCount;

                }

            }

            else{

                if(a[i] == x){

                    ++xCount;

                }

                else if(a[i] == y){

                    ++yCount;

                }

                else if(a[i] == z){

                    ++zCount;

                }

                else{

                    --xCount;

                    --yCount;

                    --zCount;

                }

            }

        }

    

    }

}

 
본 고 는 지식 공유 서명 - 비상 업적 사용 3.0 허가 협의 을 바탕 으로 허 가 를 진행한다.전재, 연역 을 환영 하지만 본 고의 서명 숲 의 날개 가 날리다. 을 보류 해 야 합 니 다. 문의 가 필요 하 시 면 편 지 를 보 내 주세요.

좋은 웹페이지 즐겨찾기