LeetCode 2015.7.10 26,58,226

26 Remove Duplicates from Sorted Array
class Solution {
public:
    int removeDuplicates(vector<int>& nums) {
        if (nums.size()==0) return 0;
        int i,j,k,cnt;
        int len=nums.size();
        i=0;j=0;cnt=0;k=0;
        while (i<len && j<len)
        {
            while (j<len && nums[i]==nums[j])
                j++;
            if (j==len-1 && nums[j]==nums[i]) j++;
            cnt+=(j-i-1);
            nums[k]=nums[i];
            k++;
            i=j;
        }
        nums.resize(len-cnt);
        return len-cnt;
    }
};

58 Length of Last Word
class Solution {
public:
    int lengthOfLastWord(string s) {
        int len = s.size()-1;
        if (len<0) return 0;
        int flag[300]={0};
        for(int i=0;i<26;i++)
        {
            flag[i+'a']=1;
            flag[i+'A']=1;
        }
        while (len>=0 && flag[s[len]]!=1)
            len--;
        if (len<0) return 0;
        int cnt = 0;
        while (len>=0 && flag[s[len]]==1)
        {
            cnt++;len--;
        }
        return cnt;
    }
};

226 Invert Binary Tree
class Solution {
public:
    TreeNode* invertTree(TreeNode* root) {
        if (root==NULL) return root;
        invert(root);
        return root;
    }

    void invert(TreeNode* root) {
        TreeNode* tmp;
        if (!(root->left==NULL && root->right==NULL))
        {
            tmp = root->left;
            root->left = root->right;
            root->right = tmp;
            if (root->left!=NULL)invert(root->left);
            if (root->right!=NULL)invert(root->right);
        }
        else return ;
    }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值