leetcode腾讯50题-88-89-104

88. 合并两个有序数组

给你两个有序整数数组nums1 和nums2,请你将nums2 合并到nums1 使nums1 成为一个有序数组。

初始化nums1和nums2的元素数量分别为m和n 。你可以假设nums1 有足够的空间(空间大小等于m + n)来保存nums2中的元素。

思路:两指针法,由高到低比较插入

class Solution {

public:

    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {

        if(m==0){

            nums1=nums2;

            return;

        }

        if(n==0) return;

        int i=m-1,j=n-1,k=m+n-1;

        while(j>=0)

        {

            if(nums2[j]>=nums1[i])

            {

                nums1[k]=nums2[j];

                k--;

                j--;

            }

            else{

                nums1[k]=nums1[i];

                i--;

                k--;

            }

            while(i==-1&&j>=0)

            {

                nums1[k]=nums2[j];

                k--;

                j--;

            }

        }

    }

};

89. 格雷编码

格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。

给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。

格雷编码序列必须以 0 开头。

思路:动态规划,

n=0时,res=[0]

n=1时,res=[0,1],res[1]=res[0]+0x1<<0;

n=2时,res=[0,1,3,2],res[2]=res[1]+0x1<<1,res[3]=res[0]+0x1<<1;

n=3时,res=[0,1,3,2,6,7,5,4],res[4]=res[3]+0x1<<2;res[5]=res[2]+0x1<<2;res[6]=res[1]+0x1<<2;res[7]=res[0]+0x1<<2;

class Solution {

public:

    vector<int> grayCode(int n) {

        vector<int>res(0x1<<n);

        res[0]=0;

        if(n==0) return res;

        for(int i=1;i<n+1;i++)

        {

            int t=0x1<<i;

            for(int j=t-1;j>t/2-1;j--)

            {

                res[j]=res[t-1-j]+t/2;

            }

        }

        return res;

    }

};

104. 二叉树的最大深度

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明:叶子节点是指没有子节点的节点。

class Solution {

public:

    int maxDepth(TreeNode* root) {

        if(root==nullptr)

        return 0;

        int left=(root->left==nullptr)?0:maxDepth(root->left);

        int right=(root->right==nullptr)?0:maxDepth(root->right);

        return 1+std::max(left,right);

    }

};

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容