头像

catlle




离线:9小时前


最近来访(20)
用户头像
1_q_2
用户头像
_Zhou_Bo_
用户头像
夜寐
用户头像
o_038
用户头像
冬日
用户头像
wxzcch
用户头像
dushucheng0901
用户头像
梦的彼方
用户头像
Wdydxzn
用户头像
重生之我是菜史莱姆
用户头像
青衣程碟衣
用户头像
氯化银
用户头像
Sings
用户头像
琦琦乖乖


catlle
15小时前
class Solution {
public:
    int findNumberAppearingOnce(vector<int>& nums) {
        //先排序
        sort(nums.begin(), nums.end());
        if(nums.size() == 1)
            return nums[0];
        //再找出一个既不与右边的数相等又不与左边的数相等
        for(int i = 0; i < nums.size(); i++){
            if(i == 0 && nums[i] != nums[i + 1])
                return nums[i];
            else if(i == nums.size() - 1 && nums[i] != nums[i - 1])
                return nums[i];
            else if(nums[i] != nums[i - 1] && nums[i] != nums[i + 1])
                return nums[i];
        }
    }
};



catlle
3天前
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    //找出最大和最小的深度,然后作差;
    int m = 0, n = 1000;
    void dfs(TreeNode *root, int d){
        if(!root){
            if(m < d) m= d;
            if(n > d) n = d;
            return ;
        }
        dfs(root->left, d + 1);
        dfs(root->right, d + 1);
    }
    bool isBalanced(TreeNode* root) {
        int d = 0;
        dfs(root, d);
        if(m - n <= 1) return true;
        return false;
    }
};



catlle
3天前
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    //将每一层都遍历到,记录下最大层
    int max = 0;
    void dfs(TreeNode *root, int d){
        if(!root){
            if(d > max)
                max = d;
            return ;
        }
        dfs(root->left, d + 1);
        dfs(root->right, d + 1);
    }

    int treeDepth(TreeNode* root) {
        int d = 0;
        dfs(root, d);
        return max;
    }
    //取巧做法
    // int treeDepth(TreeNode* root) {
    //     if(!root) return 0;
    //     return max(treeDepth(root->left), treeDepth(root->right)) + 1;
    // }
};



catlle
4天前
class Solution {
public:
    bool searchArray(vector<vector<int>> array, int target) {
        int n = array.size();
        //判断是否为空数组
        if(n == 0)
            return false;
        int m = array[0].size();
        int i = 0, j = m - 1;
        while(i < n && j >= 0){
            if(array[i][j] == target)
                return true;
            //如果右上角的值比目标值大,将最后一列删掉
            else if(array[i][j] > target)
                j--;
            //否则将一行删掉
            else
                i++;
        }
        return false;
    }
};



catlle
4天前
class Solution {
public:

    void dfs(TreeNode *l, TreeNode *r, int d){
        if(!l) return;
        if(d % 2) swap(l->val, r->val);
        dfs(l->left, r->right, d + 1);
        dfs(l->right, r->left, d + 1);
    }

    TreeNode* reverseOddLevels(TreeNode* root) {
        dfs(root->left, root->right, 1);
        return root;
    }
};
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~



catlle
4天前
class Solution {
public:
    int longestContinuousSubstring(string s) {
        int len = 1, l = 1;
        for(int i = 1; i < s.size(); i++){
            while(s[i] == s[i - 1] + 1){
                l++;
                i++;
            }
            if(l > len)
                len = l;
            l = 1;
        }
        return len;   
        //双指针
        // int len = 1, j = 0;
        // for(int i = 1; i < s.size(); i++){
        //     while(s[i] == s[i - 1] + 1 && i < s.size()) i++;
        //     len = max(len, i - j);
        //     j = i;
        // }
        // return len;  
    }
};
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~


活动打卡代码 LeetCode 2413. 最小偶倍数

catlle
4天前
class Solution {
public:
    int smallestEvenMultiple(int n) {
        if(n % 2) return 2 * n;
        return n;
        // return n % 2 ? n * 2 : n;
    }
};
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~



catlle
5天前
class Solution {
public:
    int getNumberSameAsIndex(vector<int>& nums) {
        int i = 0;
        for(i = 0; i < nums.size(); i++)
            if(i == nums[i]);
                return i;
        return -1;
        //二分法
        // int l = 0, r = nums.size();
        // int m;
        // while(l < r){
        //     m = l + r >> 1;
        //     if(nums[m] >= m) r = m;
        //     else l = m + 1;
        // }
        // if(nums[l] != l)
        //     return -1;
        // return l;
    }
};



catlle
6天前
class Solution {
public:
    int getMissingNumber(vector<int>& nums) {
        int sum = 0, n = nums.size();
        //先将数组中的所有数加起来
        for(int x: nums)
            sum += x;
        //用完整的数组和减去不完整的数组和
        return (n + 1) * n / 2 - sum;
        //二分法
        // int n = nums.size() + 1;
        // int l = 0, r = n - 2, m;
        // //判断是否为空数组
        // if(nums.empty()) return 0;
        // //判断是否是最后一个数不存在
        // if(nums[r] == r) return r + 1;
        // //开始二分
        // while(l < r){
        //     m = (l + r) / 2;
        //     if(nums[m] != m) r = m;
        //     else l = m + 1;
        // }
        // return r;
    }
};



catlle
7天前
class Solution {
public:
    int getNumberOfK(vector<int>& nums , int k) {
        int count = 0;
        //将和目标值相同的数记下来
        for(int x: nums){
            if(x != k)
                continue;
            count++;
        }
        return count;
    }
};