Balanced Binary Tree & Pascal's Triangle I & II

来源:互联网 发布:windows winsxs文件夹 编辑:程序博客网 时间:2024/05/21 09:51

(1) Balanced Binary Tree

class Solution {private:    bool check(TreeNode *root, int &dep){        if(!root)        {            dep=0;            return true;        }                int leftdep,rightdep;                bool leftBalanced=check(root->left, leftdep);        bool rightBalanced=check(root->right, rightdep);                dep=1+max(leftdep, rightdep);                return leftBalanced && rightBalanced && (abs(leftdep-rightdep)<=1);    }public:    bool isBalanced(TreeNode *root) {        int dep;        return check(root,dep);    }};

(2) Pascal's Triangle

class Solution {public:    vector<vector<int> > generate(int numRows) {        vector<vector<int>> ret(numRows);                if(numRows==0)            return ret;                if(numRows==1)            ret[0].push_back(1);        else          {            ret[0].push_back(1);                    for(int i=1;i<numRows;i++)            {                ret[i].push_back(1);                            if(numRows>2)                for(int j=1;j<i;j++)                    ret[i].push_back(ret[i-1][j-1]+ret[i-1][j]);                            ret[i].push_back(1);            }        }        return ret;    }};

(3) Pascal's Triangle II

class Solution {public:    vector<int> getRow(int rowIndex) {                int numRows=rowIndex+1;        vector<int> ret(numRows);                        if(numRows==1)            ret[0]=1;        else          {            ret[0]=1;                    for(int i=1;i<numRows;i++)            {                ret[0]=1;                            if(numRows>2)                for(int j=i-1;j>=1;j--)                    ret[j]=ret[j-1]+ret[j];                                ret[i]=1;            }        }        return ret;    }    };


   

0 0
原创粉丝点击