zoukankan      html  css  js  c++  java
  • 谷歌的一道面试题

    转载自:http://blog.csdn.net/ylf13/article/details/13627263

    #include "stdafx.h"
    //============================================================================
    // Name        : CompetitionWinner.cpp
    // Author      : YLF
    // Version     :
    // Copyright   : Your copyright notice
    // Description : Hello World in C++, Ansi-style
    //============================================================================
    
    #include <iostream>
    using namespace std;
    #define MAX 10
    /*
    * just like a heap sort!!
    */
    void Competition(int** matrix, int row, int col, int* order, int n);
    void Promote(int *order, int index);
    
    int main() {
    
        int i = 0, j = 0;
        int n = 0;
    
        //int (*matrix)[MAX]=new int[MAX][MAX];
        int **matrix;
        matrix=new int*[MAX];    //注意*的位置
        for(i=0;i<MAX;i++)
            matrix[i] = new int[MAX];
        int order[MAX];
    
    
        //输入队伍实力对比
        cin>>n;
        for(i=0;i<n;i++)
            for(j=0;j<n;j++)
                cin>>matrix[i][j];
    
        //输入队伍参赛顺序
        for(i=0;i<n;i++)
            cin>>order[i];
    
        //比赛
        Competition(matrix, n, n, order, n);
    
        //比赛结果
        cout<<"比赛结果排名:";
        for(i=0;i<n;i++)
            cout<<order[i]<<" ";
    
        delete []matrix;    //释放堆内存*/
        /*int (*a)[4]=new int[4][4];
        /*for (int i=0;i<4;i++)
        {
            a[i]=new int[4];
        }*/
        
        //delete []a;
        return 0;
    }
    
    void Competition(int** matrix, int row, int col, int* order, int n){
        int i = 0, j =0, index = 0;
        int winner = 0;
    
        while(n>1)
        {
            for(index=0;index<n;index+=2)
            {
                if(index+1 < n)
                {
                    //偶数    这里的奇数偶数  指的是当前这一轮参赛的队伍总数是基数还是偶数
                    winner = matrix[order[index]][order[index+1]];
                    if(winner == order[index])
                        Promote(order,index);
                    else
                        Promote(order, index+1);
                }
                else
                {
                    //奇数,这里作直接晋级处理
                    Promote(order,index);
                }
            }
            n = (n+1)/2;    //重新计算进入下一轮循环赛的队伍总数
        }
    } 
    
    void Promote(int *order, int index){
        int temp = order[index];
        order[index] = order[index/2];
        order[index/2] = temp;
        /*for (int i=0;i<4;i++)
        {
        cout<<order[i]<<"  ";
        }
        cout<<endl;*/    //输出排序后的order数组  测试用
    }

    O7}22`7`64VTJ]VN[MCHT3J

  • 相关阅读:
    计算机图形方面职业计划体会
    Shader Wave
    Cook-Torrance光照模型
    Unity3D 固定功能函数
    Hermite (埃尔米特)曲线
    技能CD 效果 shader
    圆角计算 Shader
    抽象工厂模式
    单例模式
    unity 菜单栏添加新菜单
  • 原文地址:https://www.cnblogs.com/audi-car/p/4598763.html
Copyright © 2011-2022 走看看