leetcode-159周赛-5230-缀点成线

自己的提交:

class Solution:
    def checkStraightLine(self, coordinates: List[List[int]]) -> bool:
        if not coordinates: return False
        if len(coordinates) <= 2:
            return True
        k = float("inf") if coordinates[1][0] - coordinates[0][0] == 0 else (coordinates[1][1] - coordinates[0][1]) / (coordinates[1][0] - coordinates[0][0])
        for i in range(2,len(coordinates)):
            k1 = float("inf") if coordinates[i][0] - coordinates[i-1][0] == 0 else (coordinates[i][1] - coordinates[i-1][1]) / (coordinates[i][0] - coordinates[i-1][0])
            if k1 != k:
                return False
        return True

另:

class Solution:
    def checkStraightLine(self, coordinates: List[List[int]]) -> bool:
        n = len(coordinates)
        if n <= 2:
            return True
        x1, y1 = coordinates[0][0] - coordinates[1][0], coordinates[0][1] - coordinates[1][1]
        for i in range(2, n):
            x2, y2 = coordinates[0][0] - coordinates[i][0], coordinates[0][1] - coordinates[i][1]
            if x1 * y2 - x2 * y1 != 0:
                return False
        return True

原文地址:https://www.cnblogs.com/oldby/p/11711521.html

时间: 2024-11-07 15:06:23

leetcode-159周赛-5230-缀点成线的相关文章

[leetcode 周赛 159] 1232 缀点成线

1232 Check If It Is a Straight Line 缀点成线 问题描述 在一个?XY 坐标系中有一些点,我们用数组?coordinates?来分别记录它们的坐标,其中?coordinates[i] = [x, y]?表示横坐标为 x.纵坐标为 y?的点. 请你来判断,这些点是否在该坐标系中属于同一条直线上,是则返回 true,否则请返回 false. 示例 1: 输入: coordinates = [[1,2],[2,3],[3,4],[4,5],[5,6],[6,7]] 输

Leetcode:Swap Nodes in Pairs 链表成对交换节点

Swap Nodes in Pairs: Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2->3->4, you should return the list as 2->1->4->3. Your algorithm should use only constant space. You may not modify the va

将图片转成线稿图

1.首先找一张图片,在PS中打开,我随便找了一张自己收藏的壁纸如下图: 2.打开图片之后, 我们先把图像处理成黑白.点击菜单栏:图像-调整-黑白. 快捷键:Alt+Shitf+Ctrl+B 3.现在我们把这个图层复制一个.点击菜单栏:图层-复制图层-确定. .快捷键:Ctrl+J 大家可以看左下角的图层面板. 4.对复制出来的图层执行"反向"处理.点击菜单栏: 图像 - 调整 - 反向.. 快捷键:Ctrl+I 这样就类似与底片的效果了. 5.再接着, 修改已经反向的图层的图层属性, 

LeetCode双周赛10

Leetcode双周赛10 5079.三个有序数组的交集 给出三个均为 严格递增排列 的整数数组 arr1,arr2 和 arr3. 返回一个由 仅 在这三个数组中 同时出现 的整数所构成的有序数组. 示例: 输入: arr1 = [1,2,3,4,5], arr2 = [1,2,5,7,9], arr3 = [1,3,4,5,8] 输出: [1,5] 解释: 只有 1 和 5 同时在这三个数组中出现. 提示: 1 <= arr1.length, arr2.length, arr3.length

连点成线

做技术和做产品都需要沉心深研.做技术侧重对物性的理解,突破原有限制,创造新的领域: 做产品侧重对人性的理解,善于使用技术,创造简单易用的服务.技术需要落地于产品,展示其威力; 产品需要新技术的引擎, 实现创新的魅力.我是一名产品工程师. 代码,文字,图形,如音律的键盘敲击,渐渐渗透到身体里.血液里.骨髓里,从中生出一种慧根,生长成一座花园,一座城堡,一个王国.人的生命只有一次,必当无愧于自己,有益于社会.尽管跌跌撞撞,当如雄鹰一样飞向天空,直入云霄. 生命的历程是奇妙的.使人获得提升的,往往不是

leetcode 159. Longest Substring with At Most Two Distinct Characters 求两个字母组成的最大子串长度 --------- java

Given a string, find the length of the longest substring T that contains at most 2 distinct characters. For example, Given s = "eceba", T is "ece" which its length is 3. 给一个字符串,求这个字符串中,由两个字母组成的,连续的最长子串的长度. 虽然是hard,但是感觉并没有什么难度. 用ch1和pre

[Leetcode] Roman to integer 罗马数字转成整数

Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 思路:有关罗马数字的相关知识可见博客Integer to roman.从左往右遍历字符串,比较当前为和下一位的值,若是当前数字比下一位大,或者当当前数字为最后时,则加上当前数字,否则减去当前数字.这就遇到一个问题,罗马数字的字符串不是按26个字母顺序来的,如何确定大小.解决办法一:写

[LeetCode] Integer to Roman 整数转化成罗马数字

Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999. 之前那篇文章写的是罗马数字转化成整数(http://www.cnblogs.com/grandyang/p/4120857.html), 这次变成了整数转化成罗马数字,基本算法还是一样.由于题目中限定了输入数字的范围(1 - 3999), 使得题目变得简单了不少. 基本字符 I V

酷炫星空,连点成线

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style media="screen"> *{ margin: 0; padding: 0 } html,body{ height: 100%; margin: 0; padding: 0; background-color: #000000;