要发财的小熊猫很靠谱 level
获赞
6
粉丝
5
关注
0
看过 TA
109
门头沟学院
2025
C++
IP属地:江西
暂未填写个人简介
私信
关注
2024-12-02 22:41
门头沟学院 C++
0 点赞 评论 收藏
分享
2024-11-30 23:10
门头沟学院 C++
968监控二叉树class Solution {private:int result = 0;int traversal(TreeNode* cur){//递归出口if(cur == NULL) return 2;//左int left = traversal(cur->left);//右int right = traversal(cur->right);//中//情况1if(left == 2 && right == 2) return 0;//情况2if(left == 0 || right == 0){result++;return 1;}//情况3if(left == 1 || right == 1) return 2;return -1;//其实上面三种情况包括了所有情况,并不会走到这步,但必须这里加个return,否则编译不通过}public:int minCameraCover(TreeNode* root) {//贪心和二叉树的结合,尽量让叶子节点的根节点安装摄像头,可以覆盖上中下三层,减少覆盖范围的浪费//后序遍历这个二叉树,根据叶子结点的状态(0无覆盖、1有摄像头、2有覆盖),来判断根节点的状态//注意,遇到空结点的时候,将其状态定为2有覆盖,才能让叶子节点是个0无覆盖状态,而其父节点为1有摄像头//根据叶子结点的情况主要可以分为以下三类//1、左右叶子节点都为2有覆盖,则父节点为0无覆盖(等着它的上层加摄像头来覆盖)//2、左右结点至少有一个为0无覆盖,则父节点必须为1有摄像头//3、左右结点至少有一个为1有摄像头,则父节点必须为2有覆盖(注意,情况2的判断必须要放在3之前)//此外,还有一种特殊情况//4、根节点最后为0无覆盖,因为根节点没有父节点,所以被办法对其进行上层加摄像头覆盖了,所以此时根节点要放一个摄像头if(traversal(root) == 0) result++;//特殊情况4出现,摄像头再加一个return result;}};
0 点赞 评论 收藏
分享
2024-11-24 23:26
门头沟学院 C++
今天算法只刷了N皇后一道题,是一道经典的回溯算法用于棋盘问题的题。然后还把迭代器、算法库、lambda表达式学了下,对bind还不是很理解,明天接着学。最近降温了,不知道自己抽什么风开学搬校区的时候懒得带那么多东西,就把羽绒服和珊瑚绒睡衣、甚至秋衣都全寄回家了,只留了最薄的羽绒服。。现在又重新买了秋衣和睡衣,反正也不咋出门,先这样吧,实在太冷了,再让家里寄回来。那时候对自己太自信了,觉得能日复一日学很多,然后找到实习就不用待在学校了,没想到后面从9月下旬开始因为准备国奖材料、老板催文章、本专业秋招这些乱七八糟的事严重耽误了学习进度,国庆还回了趟家,还跟爸妈错峰去福建旅游了好几天,一下子十月的半个月就没了。。所以现在拖到这么晚了,不过没关系,离过年还有两月呢,这两个月坚持坚持,把C++基础学完,看是继续学Qt、做项目啥的,还是就开始边把Linux、C++相关的八股文复习背一下,边准备找实习试试。后面再看吧,情况不好的话,寒假就继续深入学,冲明年的春招。上半年不应该把那么多时间都花在写文章上的,又不读博,那么多文章除了评奖学金啥用也没有,而且今年只要一两篇一区就能评上的,真是失算了。当初就应该全身心投入转码学习的,两万块其实也没啥,也就是以后一两个月的工资罢了。继续加油吧,现在就是努力的最好时刻!冲!
0 点赞 评论 收藏
分享
2024-11-22 12:16
门头沟学院 C++
1.39组合总和。2.40组合总和II:题目给出的数组中可能含有重复元素值,不可以重复使用同一元素,但由于值重复,所以得到的组合里仍然有可能出现重复值(这是允许的)。同时,为了避免出现重复的组合,就必须对树层去重(树层就是组合的第一个元素取下一个元素,来收集下一个组合的过程),而不需要对树枝去重(树枝就是还在收集当下这个组合,不同元素可能值重复)。有点类似于三数之和的去重逻辑(收集下一个组合时,如果第一个元素与上个组合的第一个元素值相同,则说明本次收集结果一定被上次收集结果包含了)。要对数组提前进行排序,才方便后续去重。去重操作:if(i > 0 && candidates[i] == candidates[i-1] && used[i-1] == false) continue;3.131.分割回文串:切割问题类似组合问题,将判断回文串的逻辑放在单层递归处理结点处,当前切割出来的子串如果是回文串,就加入到收集当前组合的数组中,如果不符合,就直接跳过本次循环。此外,注意startIndex到i的距离就是切割出来的子串。昨天晚上接了个导师电话,整个人都不好了,本来现在不焦虑,心态很平缓了,被他一说又焦虑了。。不行不能被他影响,就当他是在放屁,继续做我的事情。后面毕业论文就抽空写一下,应该也不难,我的实验的英文文章都已经发了,只要翻译一下,然后稍微扩充一下说的罗嗦一点就能凑出毕业论文了。满打满算最多一个礼拜就能搞完。现在还是要把精力放在刷题刷课上!
0 点赞 评论 收藏
分享
2024-11-20 21:15
门头沟学院 C++
0 点赞 评论 收藏
分享
2024-11-19 18:41
门头沟学院 C++
1.235.二叉搜索树的最近公共祖先:递归法:利用二叉搜索树的特性,如果遇到的结点是第一次出现在[p,q]区间中的,那么这个结点一定是最近公共祖先,pq分别出现在这个结点的左右子树中,由这个结点分化出来的任何结点尽管值在[p,q]区间,但是它们都不是公共祖先。2.701.二叉搜索树中的插入操作:不考虑改变树结构的方法,只将其加入到树最后的空结点处。利用搜索树的特性,找到要插入结点的空结点处,并让此时的root->left/root->right等于新new出来的结点。3.450.删除二叉搜索树中的节点://递归,多种情况分析//1.没找到待删除结点,遍历到空结点,直接返回if(root == NULL) return root;//找到待删除结点if(root->val == key){//2.待删除结点为叶子结点,直接删除该节点,并返回空结点if(root->left == NULL && root->right == NULL){delete root;return NULL;}//3.待删除结点左孩子为空,右孩子不为空,右孩子补位,并返回else if(root->left == NULL){TreeNode* node = root->right;delete root;return node;}//4.待删除结点右孩子为空,左孩子不为空,左孩子补位,并返回else if(root->right == NULL){TreeNode* node = root->left;delete root;return node;}//5.待删除结点左右孩子都不为空,//则将待删除节点的左子树放到待删除节点的右子树的最左面节点的左孩子的位置//并返回删除节点右孩子为新的根节点。else{TreeNode* cur = root->right;while(cur->left){cur = cur->left;}//找到右子树最左边结点的孩子位置cur->left = root->left;TreeNode* tmp = root;root = root->right;delete tmp;return root;}}if(root->val > key) root->left = deleteNode(root->left, key);if(root->val < key) root->right = deleteNode(root->right, key);return root;
0 点赞 评论 收藏
分享
2024-11-17 20:52
门头沟学院 C++
1.530.二叉搜索树的最小绝对差:依然是利用二叉搜索树中序遍历得到的结点是有序的特性,对其进行递归中序遍历,并采用双指针法得到两个结点间的绝对差(中序遍历得到的有序数组中相邻两个结点间的绝对差一定是最小的,不需要再去与更远的结点进行比较,只需要比较两两相邻间的差值就够了),最后通过对绝对差进行不断更新就能获得最小绝对差。2.501.二叉搜索树中的众数: 递归中序遍历,双指针比较前后两个结点是否相等,同时更新maxValue,当count==maxValue时,将该元素加入到结果集中。如果count>maxValue,要注意更新maxValue的值,并清空结果集(失效)。注意递归过程中这些值都要是全局变量。3.236.二叉树的最近公共祖先:递归后序遍历,//左右子树都不为空,说明找到了pq,此时root就是最近公共祖先if(left != NULL && right != NULL) return root;//当一边找了了p/q,就直接返回这边的结点,//当层层递归结束,要么会只返回这个结点(这个结点本身就是最近公共祖先)//要么会与另外一支汇合,分别作为左右结点返回值,最后返回他们此时的根节点if(left != NULL && right == NULL) return left;else if(left == NULL && right != NULL) return right;else return NULL;这两天被文本查询卡住了,有点烦躁,把权游八季的解说看完了,现在心静下来了,后面继续刷算法,搞完这个文本查询就开始学STL了。不要放弃!
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务