首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2022-01-10:路径交叉。给你一个整数数组 distance 。

2022-01-10:路径交叉。给你一个整数数组 distance 。

作者头像
福大大架构师每日一题
发布2022-03-04 14:59:37
发布2022-03-04 14:59:37
2570
举报

2022-01-10:路径交叉。给你一个整数数组 distance 。

从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南移动 distance[2] 米,向东移动 distance[3] 米,持续移动。也就是说,每次移动后你的方位会发生逆时针变化。

判断你所经过的路径是否相交。如果相交,返回 true ;否则,返回 false 。

力扣335。

答案2022-01-10:

讨论4种情况。

1.i跟i-3撞。

2.i跟i-4撞,追尾。

3.i跟i-5撞。

4.i跟i-6撞。

代码用golang编写。代码如下:

代码语言:javascript
复制
package main

import "fmt"

func main() {
    arr := []int{2, 2, 3, 2, 2}
    fmt.Println(isSelfCrossing(arr))
}

func isSelfCrossing(x []int) bool {
    if len(x) < 4 {
        return false
    }
    if (len(x) > 3 && x[2] <= x[0] && x[3] >= x[1]) || (len(x) > 4 && ((x[3] <= x[1] && x[4] >= x[2]) || (x[3] == x[1] && x[0]+x[4] >= x[2]))) {
        return true
    }
    for i := 5; i < len(x); i++ {
        if x[i-1] <= x[i-3] && ((x[i] >= x[i-2]) || (x[i-2] >= x[i-4] && x[i-5]+x[i-1] >= x[i-3] && x[i-4]+x[i] >= x[i-2])) {
            return true
        }
    }
    return false
}

执行结果如下:

[左神java代码](https://github.com/algorithmzuo/coding-for-great-offer/blob/main/src/class42/Problem_0335_SelfCrossing.java)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 福大大架构师每日一题 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档