LeetCode 第 159 场周赛
一、 缀点成线(LeetCode-5230)
1.1 题目描述

1.2 解题思路
比较简单的一题,利用公式 y = kx + b,确定好k和b就好,并且要考虑一种情况,函数 x = h。
1.3 解题代码
public boolean checkStraightLine(int[][] coordinates) {
int k = Integer.MIN_VALUE;
int x1 = coordinates[0][0];
int y1 = coordinates[0][1];
int x2 = coordinates[1][0];
int y2 = coordinates[1][1];
int dy = y2 - y1;
int dx = x2 - x1;
if (dx != 0) {
k = dy / dx;
}
int b = y1 - k * x1;
boolean onLine = true;
for (int i = 2; i < coordinates.length; i++) {
if (k == Integer.MIN_VALUE) {
if (coordinates[i][0] != x1) {
onLine = false;
break;
}
} else if (coordinates[i][1] != (k * (coordinates[i][0]) + b)) {
onLine = false;
break;
}
}
return onLine;
}
二、 删除子文件夹(LeetCode-5231)
2.1 题目描述


2.2 解题思路
使用两层for循环会导致超时,需要使用字典树解决。
2.3 解题代码
class Solution {
public Tree rootNode = null;
public List<String> removeSubfolders(String[] folder) {
rootNode = new Tree();
rootNode.path = "/";
rootNode.nextMap = new HashMap<>();
List<String> res = new ArrayList<>();
Arrays.sort(folder, (a, b) -> {
return a.length() - b.length();
});
for (int i = 0; i < folder.length; i++) {
if (!isCover(folder[i])) {
res.add(folder[i]);
}
}
return res;
}
public boolean isCover(String path) {
boolean cover = false;
String[] pathArray = path.split("/");
int arrayLen = pathArray.length;
Tree tmp = rootNode;
for (int i = 1; i < arrayLen; i++) {
Tree node = tmp.nextMap.get(pathArray[i]);
if (node == null) {
node = new Tree();
node.path = pathArray[i];
node.nextMap = new HashMap<>();
} else {
if (node.isRoot) {
cover = true;
}
}
if (cover == false && i == arrayLen - 1) {
node.isRoot = true;
}
tmp.nextMap.put(pathArray[i], node);
tmp = node;
}
return cover;
}
}
class Tree {
public String path;
//判断是否是根文件夹
//例如 /a/b 可能是根文件夹,需要在b节点,记录isRoot = true;
public boolean isRoot;
public Map<String, Tree> nextMap;
}
LeetCode 第 159 场周赛的更多相关文章
- LeetCode 第 165 场周赛
LeetCode 第 165 场周赛 5275. 找出井字棋的获胜者 5276. 不浪费原料的汉堡制作方案 5277. 统计全为 1 的正方形子矩阵 5278. 分割回文串 III C 暴力做的,只能 ...
- Leetcode第 217 场周赛(思维量比较大)
Leetcode第 217 场周赛 比赛链接:点这里 做完前两题我就知道今天的竞赛我已经结束了 这场比赛思维量还是比较大的. 1673. 找出最具竞争力的子序列 题目 给你一个整数数组 nums 和一 ...
- Leetcode 第133场周赛解题报告
今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...
- LeetCode第151场周赛(Java)
这是我第一次写周赛的题目,而且还是虚拟的.从这次起,以后就将所有错过的题目都写到博客来.当然既然是我错的,那代码肯定不是我自己的.我会注明来源.并且我会自己敲一遍.多总结总是没坏处的. 另外比较糟糕的 ...
- LeetCode第152场周赛(Java)
这算是我第一次正式参加 LeetCode 的周赛吧.通过两道题.意料之中(通过上次模拟可以看出来).总的来说,脑袋还是不太灵光.想的有点慢.全球第一名 0:10:19 就全部通过...感觉我的智商被狠 ...
- Leetcode 第137场周赛解题报告
今天的比赛的题目相对来说比较「直白」,不像前几周都是一些特定的算法,如果你没学过不可能想出来. 做了这些周,对leetcode比赛的题目也发现了一些「规律」. 一般前两道题都很「简单」,只要有想法,直 ...
- LeetCode 第 150 场周赛
一.拼写单词(LeetCode-1160) 1.1 题目描述 1.2 解题思路 由于给定的chars,每个字母只能用一次,所以用大小为26的数组charsArray来表示a-z(例如charsArra ...
- LeetCode 第 196 场周赛 (题目:5452-5455,这是参加过最坑的周赛,暴力n^2居然可以过)
5452. 判断能否形成等差数列 给你一个数字数组 arr . 如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 . 如果可以重新排列数组形成等差数列,请返回 tru ...
- Leetcode 第136场周赛解题报告
周日的比赛的时候正在外面办事,没有参加.赛后看了下题目,几道题除了表面要考的内容,还是有些能发散扩展的地方. 做题目不是最终目的,通过做题发现知识盲区,去研究学习,才能不断提高. 理论和实际是有关系的 ...
随机推荐
- 安恒pwn魔法
魔法这是比较基础的一道栈溢出: 首先看下开启的防护机制 Checksec magicc发现只有nx防护 我们载入ida发现溢出点 Buf实际溢出空间为0x16,构造exp import time fr ...
- sql server 获取某一字段分组数据的前十条记录
1.sql 语法 select m, n from ( select row_number () over (partition by m order by n desc) rn,--以m分组,分组内 ...
- antd-table——内容展示变型
bug单: https://github.com/ant-design/ant-design/issues/13825 1.设置固定宽度:在columns中设置widht或者className { t ...
- HBase集群环境搭建v1.0
本文档环境基于ubuntu14.04版本,如果最终不使用SuperMap iServer 9D ,可以不配置geomesa-hbase_2.11-2.0.1-bin.tar.gz (转发请注明出处:h ...
- Java Map的正确使用方式
原文:https://www.liaoxuefeng.com/article/1256136507802816 正确使用Map,只需要正确实现hashCode()和equals()就行了吗? 恐怕还不 ...
- 每个程序员都应该知道延迟数—Latency Numbers Every Programmer Should Know
每个程序员都应该知道延迟数 Latency Numbers Every Programmer Should Know https://people.eecs.berkeley.edu/~rcs/res ...
- SQL进阶系列之0窗口函数
窗口函数 What's 窗口函数? 窗口函数也称为OLAP(OnLine Analytical Processing)函数,目前MySQL还不支持. 窗口函数的语法 <窗口函数> OVER ...
- 初学Django基础01 建立工程,目录结构,常用配置,上下文管理,模板渲染
django是python的web重量级框架,发展已经有10年多了,对应下面版本 Django 版本 Python 版本 1.8 2.7, 3.2 , 3.3, 3.4, 3.5 1.9, 1.10 ...
- keras模块学习之-激活函数(activations)--笔记
本笔记由博客园-圆柱模板 博主整理笔记发布,转载需注明,谢谢合作! 每一个神经网络层都需要一个激活函数,例如一下样例代码: from keras.layers.core import Activati ...
- Spring源码窥探之:BeanPostProcessor
Spring的Bean后置处理器 1. 实体类 /** * @author 70KG * @Title: Train * @Description: * @date 2018/7/23下午11:31 ...