LeetCode 2019 力扣杯全国秋季编程大赛

文章目录

    • 1. 比赛结果
    • 2. 题目解析
      • 2.1 猜数字 Easy
      • 2.2 分式化简 Esay
      • 2.3 机器人大冒险 Medium
      • 2.4 覆盖 Hard
      • 2.5 发 LeetCoin Hard

1. 比赛结果

2019.9.24晚,第一次参加线上比赛
比赛排名结果:582/1541,做出了2道题。。。
在这里插入图片描述
我证明了:我不是最菜的!!!
在这里插入图片描述

2. 题目解析


2.1 猜数字 Easy

小A 和 小B 在玩猜数字。小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜。他们一共进行三次这个游戏,请返回 小A 猜对了几次?

输入的guess数组为 小A 每次的猜测,answer数组为 小B 每次的选择。guess和answer的长度都等于3。

示例 1:
输入:guess = [1,2,3], answer = [1,2,3]
输出:3
解释:小A 每次都猜对了。示例 2:
输入:guess = [2,2,3], answer = [3,2,1]
输出:1
解释:小A 只猜对了第二次。
限制:
guess的长度 = 3
answer的长度 = 3
guess的元素取值为 {1, 2, 3} 之一。
answer的元素取值为 {1, 2, 3} 之一。

送分题目,不解释,只是一开始觉得这么简单,会不会坑我

class Solution {
public:int game(vector<int>& guess, vector<int>& answer) {int count = 0;for(int i = 0; i < 3; ++i){if(guess[i] == answer[i])++count;}return count;}
};

2.2 分式化简 Esay

有一个同学在学习分式。他需要将一个连分数化成最简分数,你能帮助他吗?
在这里插入图片描述
连分数是形如上图的分式。在本题中,所有系数都是大于等于0的整数。

输入的cont代表连分数的系数(cont[0]代表上图的a0,以此类推)。返回一个长度为2的数组[n, m],使得连分数的值等于n / m,且n, m最大公约数为1。

示例 1:
输入:cont = [3, 2, 0, 2]
输出:[13, 4]
解释:原连分数等价于3 + (1 / (2 + (1 / (0 + 1 / 2))))。注意[26, 8], [-13, -4]都不是正确答案。示例 2:
输入:cont = [0, 0, 3]
输出:[3, 1]
解释:如果答案是整数,令分母为1即可。限制:
cont[i] >= 0
1 <= cont的长度 <= 10
cont最后一个元素不等于0
答案的n, m的取值都能被32位int整型存下(即不超过2 ^ 31 - 1)。

  • 数学递推公式推导
  • 用up表示初始分子(1),down表示初始分母(最后一个系数)
  • 递推公式 up=down∗ai+upup = down * a_i+upup=downai+up
  • 然后颠倒分子分母
    在这里插入图片描述
class Solution {
public:vector<int> fraction(vector<int>& cont) {int up = 1, down = cont.back(), i;for(i = cont.size() - 1; i >= 1; --i){up = down*cont[i-1]+up;swap(up, down);}return {down, up};}
};

2.3 机器人大冒险 Medium

力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种:

U: 向y轴正方向移动一格
R: 向x轴正方向移动一格。
不幸的是,在 xy 平面上还有一些障碍物,他们的坐标用obstacles表示。机器人一旦碰到障碍物就会被损毁。

给定终点坐标(x, y),返回机器人能否完好地到达终点。如果能,返回true;否则返回false。

示例 1:
输入:command = "URR", obstacles = [], x = 3, y = 2
输出:true
解释:U(0, 1) -> R(1, 1) -> R(2, 1) -> U(2, 2) -> R(3, 2)。示例 2:
输入:command = "URR", obstacles = [[2, 2]], x = 3, y = 2
输出:false
解释:机器人在到达终点前会碰到(2, 2)的障碍物。示例 3:
输入:command = "URR", obstacles = [[4, 2]], x = 3, y = 2
输出:true
解释:到达终点后,再碰到障碍物也不影响返回结果。限制:
2 <= command的长度 <= 1000
command由U,R构成,且至少有一个U,至少有一个R
0 <= x <= 1e9, 0 <= y <= 1e9
0 <= obstacles的长度 <= 1000
obstacles[i]不为原点或者终点

在这里插入图片描述

class Solution {// 超时 代码
public:bool robot(string command, vector<vector<int>>& obstacles, int x, int y) {int ax = 0, by = 0;unordered_multimap<int,int> m;for(auto it = obstacles.begin(); it != obstacles.end(); it++){m.insert(make_pair((*it)[0],(*it)[1]));//建立哈希表}for(int i = 0; i < command.size(); i++){if(ax > x || by > y)break;//走过了,肯定达到不了终点if(command[i] == 'U')by += 1;elseax += 1;if(ax == x && by == y)return true;//达到终点if(i == command.size()-1)i = -1;//循环执行auto range = m.equal_range(ax);auto it = range.first;while(it != range.second)//查找当前坐标是否是障碍物{if(by == (*it).second)return false;++it;}   }return false;}
};

上面的效率还是有问题,可能不能这么干


正解:

  • 找到一串命令可以走到的位置,存入哈希表
  • 求出多少个循环可以到达终点,把终点移到上面一串指令走过的范围,进行检查
  • 障碍物也是一样处理
class Solution {
public:bool robot(string command, vector<vector<int>>& obstacles, int x, int y) {int ax = 0, by = 0, circle, px, py;unordered_map<int,unordered_set<int>> m;m[0].insert(0);for(int i = 0; i < command.size(); i++){if(command[i] == 'U')by += 1;elseax += 1;m[ax].insert(by);//一串指令走过的点}circle = min(x/ax, y/by);//循环次数px = x-ax*circle;py = y-by*circle;if(!m.count(px) || !m[px].count(py))return false;//终点不在路径上for(int i = 0; i < obstacles.size(); ++i){if(obstacles[i][0] > x || obstacles[i][1] > y)continue;//障碍物在终点范围外circle = min(obstacles[i][0]/ax, obstacles[i][1]/by);px = obstacles[i][0]-ax*circle;py = obstacles[i][1]-by*circle;if(m.count(px) && m[px].count(py))return false;//路径包含障碍物}return true;}
};

12 ms 8.4 MB

2.4 覆盖 Hard


2.5 发 LeetCoin Hard

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美团广告实时索引的设计与实现

背景 在线广告是互联网行业常见的商业变现方式。从工程角度看&#xff0c;广告索引的结构和实现方式直接决定了整个系统的服务性能。本文以美团的搜索广告系统为蓝本&#xff0c;与读者一起探讨广告系统的工程奥秘。 领域问题 广告索引需具备以下基本特性&#xff1a; 层次化的…

论文浅尝 - AAAI2020 | 多通道反向词典模型

论文笔记整理&#xff1a;朱珈徵&#xff0c;天津大学硕士&#xff0c;自然语言处理方向。链接&#xff1a;https://arxiv.org/pdf/1912.08441.pdf动机反向词典将一段描述作为输入&#xff0c;并一起输出与该描述匹配的其他词&#xff0c;具有重要实用价值和自然语言处理研究价…

Android官方开发文档Training系列课程中文版:Android的JNI相关

原文地址&#xff1a;http://android.xsoftlab.net/training/articles/perf-jni.html JNI的全称为Java Native Interface&#xff0c;中文意思是Java本地接口。它定义了Java代码与C/C代码之间的交互方式。它是两者的桥梁&#xff0c;支持从动态共享库中加载代码。虽然有些复杂…

拒绝暴力调参!推荐一个模型Debug神器!

近些年深度学习在视觉、自然语言处理、语音等各个技术方向都诞生了不少创新应用&#xff0c;如智能识别医疗图像中的病灶&#xff0c;辅助医生做病情诊断&#xff1b;智能判别生产线上有质量问题的产品&#xff0c;减轻人工质检压力&#xff1b;对政务、金融等流程中的证件票据…

TIFF图像被转换为​​JPEG格式的图像

TIFF图像被转换为​​JPEG格式的图像。 for name in glob.glob(root_dirimg_dir*.tif): im Image.open(name) name str(name).rstrip(".tif") name str(name).lstrip(root_dir) name str(name).lstrip(img_dir) im.save(final_root_di…

Android官方开发文档Training系列课程中文版:Android的安全建议

原文地址&#xff1a;http://android.xsoftlab.net/training/articles/security-tips.html Android系统内置的安全策略可以有效的降低应用程序的安全问题。所以默认创建的应用程序已经包含了一定程度的安全保护措施。 Android所包含的安全策略有&#xff1a; 应用程序沙箱&a…

论文浅尝 - IJCAI2020 | Mucko:基于事实的多层跨模态知识推理视觉问答

论文笔记整理&#xff1a;陈卓&#xff0c;浙江大学计算机科学与技术系&#xff0c;博士研究生。论文链接&#xff1a;https://arxiv.org/pdf/2006.09073代码&#xff1a;https://github.com/astro-zihao/mucko发表会议&#xff1a;IJCAI 2020任务定义及背景VQA&#xff08;视觉…

LeetCode 40. 组合总和 II(排列组合 回溯)

1. 题目 给定一个数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明&#xff1a; 所有数字&#xff08;包括目标数&#xff09;都是正整数。 解集不能包含重…

质量运营在智能支付业务测试中的初步实践

背景 毋庸置疑&#xff0c;质量是决定产品能否成功、企业能否持续发展的关键因素之一。对于“质量时代”下的互联网企业&#xff0c;如何在快速迭代的节奏中兼顾质量&#xff0c;真正落地“人人重视质量、人人创造质量、人人享受质量”&#xff0c;这是对QA的要求&#xff0c;也…

新手手册:Pytorch分布式训练

文 | 花花机器学习算法与自然语言处理单位 | SenseTime 算法研究员目录0X01 分布式并行训练概述0X02 Pytorch分布式数据并行0X03 手把手渐进式实战A. 单机单卡B. 单机多卡DPC. 多机多卡DDPD. Launch / Slurm 调度方式0X04 完整框架 Distribuuuu0X05 Reference文中所有教学代码和…

Hotel booking酒店预订——数据分析与建模

Hotel booking酒店预订——数据分析与建模&#xff1a;https://zhuanlan.zhihu.com/p/196757364?utm_sourcewechat_session 写文章Hotel booking酒店预订——数据分析与建模&#xff08;转载翻译自kaggle&#xff09;海上泊舟数据分析师数据源&#xff1a;https://www.science…

Android官方开发文档Training系列课程中文版:Activity测试之测试环境配置

原文地址&#xff1a;http://android.xsoftlab.net/training/activity-testing/index.html 引言 开发者应当将测试作为应用开发周期的一部分。良好的测试用例可以帮助开发者及早的发现Bug&#xff0c;同时也可以增强开发者对代码的信心。 测试用例定义了一系列对象与方法&am…

论文浅尝 - ICLR2020 | Pretrained Encyclopedia: 弱监督知识预训练语言模型

论文笔记整理&#xff1a;陈想&#xff0c;浙江大学博士&#xff0c;研究方向为自然语言处理&#xff0c;知识图谱。Wenhan Xiong, Jingfei Du, William Yang Wang, Veselin Stoyanov.Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model来源&…

LeetCode 216. 组合总和 III(排列组合 回溯)

1. 题目 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数&#xff0c;并且每种组合中不存在重复的数字。 说明&#xff1a; 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k 3, n 7 输出: [[1,2,4]]示例 2: 输入: k 3, n 9 输出…

“小众”之美——Ruby在QA自动化中的应用

前言 关于测试领域的自动化&#xff0c;已有很多的文章做过介绍&#xff0c;“黑科技”也比比皆是&#xff0c;如通过Java字节码技术实现接口的录制&#xff0c;Fiddler录制内容转Python脚本&#xff0c;App中的插桩调试等&#xff0c;可见角度不同&#xff0c;对最佳实践的理解…

软考中级 软件设计师资料(考点分析+复习笔记+历年真题+电子版课本)

软考中级 软件设计师资料&#xff08;考点分析复习笔记历年真题电子版课本&#xff09;&#xff1a; https://blog.csdn.net/weixin_44754772/article/details/113763165 软件设计师是软考中级职称&#xff0c;相比高级的难度而言&#xff0c;中级难度较低&#xff0c;每个人花…

关于NLP相关技术全部在这里:预训练模型、图神经网络、模型压缩、知识图谱、信息抽取、序列模型、深度学习、语法分析、文本处理...

神器推荐NLP近几年非常火&#xff0c;且发展特别快。像BERT、GPT-3、图神经网络、知识图谱等技术应运而生。我们正处在信息爆炸的时代、面对每天铺天盖地的网络资源和论文、很多时候我们面临的问题并不是缺资源&#xff0c;而是找准资源并高效学习。但很多时候你会发现&#xf…

Android官方开发文档Training系列课程中文版:Activity测试之创建运行测试

原文地址&#xff1a;http://android.xsoftlab.net/training/activity-testing/activity-basic-testing.html 为了验证在布局与功能上没有差池&#xff0c;很重要的一点就是需要为每个Activity创建对应的测试类。对每个测试类还需要创建单独的测试用例&#xff0c;这其中包含测…

LeetCode 77. 组合(回溯)

1. 题目 给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 示例:输入: n 4, k 2 输出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode-cn.com/problems/combin…

论文浅尝 - AAAI2020 | 从异质外部知识库中进行基于图的推理实现常识知识问答...

会议&#xff1a;AAAI2020论文链接&#xff1a;https://arxiv.org/pdf/1909.05311.pdf摘要常识问答旨在回答需要背景知识的问题&#xff0c;而背景知识并未在问题中明确表达。关键的挑战是如何从外部知识中获取证据并根据证据做出预测。最近的研究要么从昂贵的人类注释中生成证…