【每日刷题】Day72

发布于:2024-06-22 ⋅ 阅读:(379) ⋅ 点赞:(0)

【每日刷题】Day72

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 1287. 有序数组中出现次数超过25%的元素 - 力扣(LeetCode)

2. 993. 二叉树的堂兄弟节点 - 力扣(LeetCode)

3. 1431. 拥有最多糖果的孩子 - 力扣(LeetCode)

1. 1287. 有序数组中出现次数超过25%的元素 - 力扣(LeetCode)

//思路:哈希记数。

int findSpecialInteger(int* arr, int arrSize)

{

    int ans = 0;

    int hash[100001] = {0};

    for(int i = 0;i<arrSize;i++)

    {

        hash[arr[i]]+=1;

    }

    for(int i = 0;i<100001;i++)

    {

        if(hash[i]>(arrSize/4))

        {

            ans = i;

            break;

        }

    }

    return ans;

}

2. 993. 二叉树的堂兄弟节点 - 力扣(LeetCode)

//思路:深度优先遍历。首先遍历求出,x、y值对应节点的深度。判断深度是否相同;随后根据x、y值对应的节点找其父节点,获取其父节点的值,判断二者父节点值是否相同。

typedef struct TreeNode TN;


//求所给值对应的节点深度

int ValHigh(TN* root,int val,int high)

{

    if(!root)

        return 0;

    if(root->val==val)

        return high;

    int left = ValHigh(root->left,val,high+1);

    if(left)

        return left;

    return ValHigh(root->right,val,high+1);

}

//求其父节点值

int FatherNode(TN* root,int val)

{

    if(!root)

        return 0;

    if((root->left&&root->left->val==val)||(root->right&&root->right->val==val))

        return root->val;

    int left = FatherNode(root->left,val);

    if(left)

        return left;

    return FatherNode(root->right,val);

}

bool isCousins(struct TreeNode* root, int x, int y)

{

//求节点深度

    int xhigh = ValHigh(root,x,1);

    int yhigh = ValHigh(root,y,1);

    if(xhigh!=yhigh)

        return false;

//求父节点值

    int father1 = FatherNode(root,x);

    int father2 = FatherNode(root,y);

    if(father1==father2)

        return false;

    return true;

}

3. 1431. 拥有最多糖果的孩子 - 力扣(LeetCode)

//思路:一次遍历判断。

bool* kidsWithCandies(int* candies, int candiesSize, int extraCandies, int* returnSize)

{

    int max = -1;

    for(int i = 0;i<candiesSize;i++)

    {

        if(candies[i]>max)

            max = candies[i];

    }

    bool* ans = (bool*)malloc(sizeof(bool)*101);

    int count = 0;

    for(int i = 0;i<candiesSize;i++)

    {

        if(candies[i]+extraCandies>=max)

            ans[count++] = true;

        else

            ans[count++] = false;

    }

    *returnSize = count;

    return ans;

}


网站公告

今日签到

点亮在社区的每一天
去签到