Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >第91场周赛

第91场周赛

作者头像
用户1145562
发布于 2020-10-23 04:11:33
发布于 2020-10-23 04:11:33
24000
代码可运行
举报
文章被收录于专栏:LC刷题LC刷题
运行总次数:0
代码可运行

传送门

860. 柠檬水找零

题解:根据描述,有三种类型的钞票,如果是5元的,可以直接收,如果是10元的,那么则需要给对方一张5元的,收到一张10元的,如果是20元的,那么需要给对方一张10元和5元或者3张5元的。思路就出来了,判断有没有足够的5元的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bool lemonadeChange(vector<int>& bills) {
        int five = 0, ten = 0;//记录手上的5元和10元面值张数
        for (int i : bills) {
            if (i == 5) five++;
            else if (i == 10) 
            {
                five--; 
                ten++;
            }
            else if(i == 20){
                if(ten>0&&five>0){ten--;five--;}
                else five-=3;
            }
            if (five < 0) return false;
        }
        return true;
    }
863. 二叉树中所有距离为 K 的结点

题解:根据藐视,只需要把二叉树转成无向图,在target点,进行K维广搜即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vector<int> distanceK(TreeNode* root, TreeNode* target, int K) {
        vector<vector<int> >graph(501);
        vector<int>ret;
        genGraph(root,graph);
        BFS(graph,ret,target->val,K);
        return ret;

    }
    void genGraph(TreeNode* root,vector<vector<int>>&graph){
        //根据二叉树生成图,由于值不重复,且均不大于500,用邻接矩阵构图
        if(!root) return; 
        if(root->left){
            graph[root->val].push_back(root->left->val);
            graph[root->left->val].push_back(root->val);
            genGraph(root->left,graph);
        }
            
        if(root->right){
            graph[root->val].push_back(root->right->val);
            graph[root->right->val].push_back(root->val);
            genGraph(root->right,graph);
        }     
    }
    void BFS(vector<vector<int>>&graph,vector<int>&ret,int &target,int &K){//广度优先搜索,k表收缩圈数
        queue<int>q;
        q.push(target);
        set<int>s;
        s.insert(target);
        while(K>0){
            int len = q.size();
            for(int i=0;i<len;i++){
                int tmp = q.front();
                s.insert(tmp);
                for(auto j:graph[tmp]){
                    if(s.find(j)==s.end()) q.push(j);
                }
                q.pop();
            }
            K--;
        }
        while(!q.empty()){
            ret.push_back(q.front());
            q.pop();
        }

    }
861. 翻转矩阵后的得分

题解:根据描述,难点在于什么时候是最多的,若采用枚举的方法,把所有可能性枚举出来,之后统计出最大的情况,这显然是不得行的。那么什么时候是最大呢?

只需要保证第一列全部为1,对于其他的。。。。我不知道怎么解释了,这代码肯定不是我写的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int matrixScore(vector<vector<int>>& A) {
        int ret = 0;
        int R = A.size(),C = A[0].size();
        for(int i = 0; i <C; i++) {
            int col = 0;
            //遍历每一行,
            for (int j = 0; j <R; j++)
                col += A[j][i] ^ A[j][0];
            ret+=max(col,R-col)*(1<<(C-i-1));
            /*遍历每一行,用每一行的除第一个元素
            与行内的其他元素异或,统计出每一列的含1的数目
            */

        }
        return ret;
    }
862. 和至少为 K 的最短子数组
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【LeetCode 热题 100】二叉树的最大深度 / 翻转二叉树 / 二叉树的直径 / 验证二叉搜索树
_小羊_
2025/05/14
240
【LeetCode 热题 100】二叉树的最大深度 / 翻转二叉树 / 二叉树的直径 / 验证二叉搜索树
【算法】DFS、BFS、floodfill、记忆化搜索
要将a柱上n个的盘子借助b柱放到c柱上,应该先将a柱上的n-1个盘子借助c放到b上,然后再将b柱上的n-1个盘子借助a柱放到c柱上,以此往复。
_小羊_
2025/03/22
1250
【算法】DFS、BFS、floodfill、记忆化搜索
LeetCode 431. 将 N 叉树编码为二叉树(递归/层序)
设计一个算法,可以将 N 叉树编码为二叉树,并能将该二叉树解码为原 N 叉树。 一个 N 叉树是指每个节点都有不超过 N 个孩子节点的有根树。 类似地,一个二叉树是指每个节点都有不超过 2 个孩子节点的有根树。 你的编码 / 解码的算法的实现没有限制,你只需要保证一个 N 叉树可以编码为二叉树且该二叉树可以解码回原始 N 叉树即可。
Michael阿明
2021/02/19
7430
LeetCode周赛307,亚马逊赞助的高质量场
今天是周一,找惯例我们来聊聊昨天的LeetCode周赛。昨天是LeetCode周赛第307场,由亚马逊赞助。
TechFlow-承志
2022/08/26
3820
LeetCode周赛307,亚马逊赞助的高质量场
【代码随想录】二刷-二叉树
二叉树中章节中,相对于迭代,递归有时候会更好理解,部分题用到了马上要刷的回溯算法。
半生瓜的blog
2023/05/13
8500
【代码随想录】二刷-二叉树
常见算法题
为了求出岛屿的数量,我们可以扫描整个二维网格。如果一个位置为 11,则以其为起始节点开始进行深度优先搜索。在深度优先搜索的过程中,每个搜索到的 11
花落花相惜
2021/11/25
4280
路径总和题型整理
题型1:easy 深度优先搜索 class Solution { public: bool hasPathSum(TreeNode* root, int targetSum) { if (root == NULL) return false; if (targetSum == root->val && root->left == NULL && root->right == NULL) return true;
大忽悠爱学习
2021/11/15
2360
2023-06-08:给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每
将这个二叉树视作与满二叉树结构相同,两端点间会出现一些延伸到这一层的 null 节点,
福大大架构师每日一题
2023/06/09
2450
2023-06-08:给你一棵二叉树的根节点 root ,返回树的 最大宽度 。 树的 最大宽度 是所有层中最大的 宽度 。 每
LeetCode 993. 二叉树的堂兄弟节点(层序遍历)
在二叉树中,根节点位于深度 0 处,每个深度为 k 的节点的子节点位于深度 k+1 处。
Michael阿明
2020/07/13
7670
LeetCode 993. 二叉树的堂兄弟节点(层序遍历)
C++版 - 剑指offer 面试题23:从上往下打印二叉树(二叉树的层次遍历BFS) 题解
剑指offer  面试题23:从上往下打印二叉树 参与人数:4853  时间限制:1秒  空间限制:32768K 提交网址: http://www.nowcoder.com/practice/7fe2
Enjoy233
2019/03/05
5860
剑指Offer
给定一个长度为 n 的整数数组 nums,数组中所有的数字都在 0 \sim n - 1的范围内。
她的店里只卖樱花
2022/10/31
6720
剑指Offer
程序员进阶之算法练习(九十一)leetcode
题目链接 题目大意: 给定数组 nums 和一个整数 k 。我们将给定的数组 nums 分成 最多 k 个相邻的非空子数组。分数由每个子数组内的平均值的总和构成。 注意我们必须使用 nums 数组中的每一个数进行分组,并且分数不一定需要是整数。 返回我们所能得到的最大 分数 是多少。答案误差在 10 ^ -6 内被视为是正确的。
落影
2023/11/12
2280
程序员进阶之算法练习(九十一)leetcode
leetcode-树 tree
使用递归,由叶子结点到根结点,每个结点都返回自己所能贡献的最大直径。设一个全局变量用来在过程中更新diameter。
孔西皮
2021/03/04
4920
leetcode-树 tree
【题目/训练】二叉树的创建&&遍历(递归&&非递归)
这题我们主要用到dfs的想法 然后我们定义两个全局变量,preIndex,postIndex来分别表示当前前序遍历和后序遍历,遍历到哪一个节点,然后由于前序遍历的第一个节点就是根节点,我们先存下根节点,然后在后序遍历找到对应根节点的左右子树,然后返回根节点即可。
IsLand1314
2024/10/15
1800
【题目/训练】二叉树的创建&&遍历(递归&&非递归)
C++穿梭树影间的智慧博弈:二叉搜索树OJ
观察示例可以知道,无论是左为空还是左为不为空,都要添加括号,所以直接递归下去,右分支则可以根据情况省略括号
DARLING Zero two
2025/04/26
800
C++穿梭树影间的智慧博弈:二叉搜索树OJ
2023-06-06:给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。 对位于 (row, col) 的每个结点而言, 其左右子结点分
2023-06-06:给你二叉树的根结点 root ,请你设计算法计算二叉树的 垂序遍历 序列。
福大大架构师每日一题
2023/06/06
1990
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
为了方便我们更快地学习二叉的基本操作,这里直接手动搭建一颗二叉树。不仅如此,在做二叉树相关题目时,由于部分原因做题平台不支持普通用户使用调试功能,可以快速搭建二叉树在本地编译器上进行调试相关操作
是店小二呀
2024/07/31
2220
【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析
【C++】二叉搜索树
二叉搜索树又称二叉排序树,可以简写成 BST,它或者是一棵空树,或者是具有以下性质的二叉树:
YoungMLet
2024/03/01
1350
【C++】二叉搜索树
Leetcode|二叉树的属性|112. 路径总和
《Leetcode|二叉树的属性|112. 路径总和》 《Leetcode|二叉树的属性DFS回溯|113. 路径总和 II》 BFS解法 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullp
SL_World
2021/09/18
3000
二叉树中的奇偶树问题
解答这道题,其实首先可以说是和leetcode上的另一道题相关,即二叉树的层序遍历:
羑悻的小杀马特.
2025/01/23
850
二叉树中的奇偶树问题
推荐阅读
相关推荐
【LeetCode 热题 100】二叉树的最大深度 / 翻转二叉树 / 二叉树的直径 / 验证二叉搜索树
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验