小米Git

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小米Git相关的知识,希望对你有一定的参考价值。

这个题目的意思其实就是要分别从根节点开始遍历(dfs)到给定的两个点,然后从得出的路径中获取最早相同的点即为结果。

 
class Solution {
public:
    /**
     * 返回git树上两点的最近分割点
     * 
     * @param matrix 接邻矩阵,表示git树,matrix[i][j] == ‘1‘ 当且仅当git树中第i个和第j个节点有连接,节点0为git树的跟节点
     * @param indexA 节点A的index
     * @param indexB 节点B的index
     * @return 整型
     */
    int getSplitNode(vector<string> matrix, int indexA, int indexB) {

        if(indexA == indexB) return indexA;
        
        int len = matrix.size();
        vector<int> vis1(len , 0);
        vector<int> vis2(len , 0);
        vector<int> rds1;
        vector<int> rds2;
        
        rds1.push_back(0);
        rds2.push_back(0);
        vis1[0] = 1;
        vis2[0] = 1;

        getRoadList(matrix,0,indexA,vis1,rds1);
        getRoadList(matrix,0,indexB, vis2,rds2);
        int ans = 0 , j = rds1.size() -1 ;
   
        for( ; j > 0 ; j --)
            for( int i = rds2.size() -1 ; i > 0 ; i --){
            
            if(rds1[j] == rds2[i])
                return rds1[j];
            
        }
        
        return ans; 
    }
    
    bool getRoadList(vector<string> matrix , int start , int index , vector<int>& vis, vector<int>& rds){
        
         string str = matrix[start];
         
         for(int i = 0 ;  i < str.length() ; i ++){
             
             if(vis[i]) continue;
             
             if(str[i] == ‘1‘ ){
                 vis[i] = 1;
                 if(i == index){
                 	rds.push_back(index);
                    
                 	return true;
             	 }
             	 else{
                	rds.push_back(i);
                  	if(!getRoadList(matrix , i , index ,  vis , rds)){
                           rds.pop_back();
                           vis[i] = 0;
                    }else{
                        return true;
                    }
             	 }
               
             }
         }   
      
        return false;
    }
    
    
};

  

以上是关于小米Git的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

如何管理在每个 git 版本中添加私有代码片段?

使用 Git 来管理 Xcode 中的代码片段

markdown Git代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段