前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 1826. 有缺陷的传感器(枚举)

LeetCode 1826. 有缺陷的传感器(枚举)

作者头像
Michael阿明
发布2021-09-06 11:26:27
9200
发布2021-09-06 11:26:27
举报
文章被收录于专栏:Michael阿明学习之路

文章目录

1. 题目

实验室里正在进行一项实验。为了确保数据的准确性,同时使用 两个 传感器来采集数据。 您将获得2个数组 sensor1 and sensor2,其中 sensor1[i] 和 sensor2[i] 分别是两个传感器对第 i 个数据点采集到的数据。

但是,这种类型的传感器有可能存在缺陷,它会导致 某一个 数据点采集的数据(掉落值)被丢弃。

数据被丢弃后,所有在其右侧的数据点采集的数据,都会被向左移动一个位置,最后一个数据点采集的数据会被一些随机值替换。可以保证此随机值不等于掉落值。

举个例子, 如果正确的数据是 [1,2,3,4,5] , 此时 3 被丢弃了, 传感器会返回 [1,2,4,5,7] (最后的位置可以是任何值, 不仅仅是 7).

可以确定的是,最多有一个 传感器有缺陷。 请返回这个有缺陷的传感器的编号 (1 或 2)。 如果任一传感器 没有缺陷 ,或者 无法 确定有缺陷的传感器,则返回 -1 。

代码语言:javascript
复制
示例 1:
输入:sensor1 = [2,3,4,5], sensor2 = [2,1,3,4]
输出:1
解释:传感器 2 返回了所有正确的数据.
传感器2对第二个数据点采集的数据,被传感器1丢弃了,传感器1返回的最后一个数据被替换为 5 。

示例 2:
输入:sensor1 = [2,2,2,2,2], sensor2 = [2,2,2,2,5]
输出:-1
解释:无法判定拿个传感器是有缺陷的。
假设任一传感器丢弃的数据是最后一位,那么,另一个传感器就能给出与之对应的输出。

示例 3:
输入:sensor1 = [2,3,2,2,3,2], sensor2 = [2,3,2,3,2,7]
输出:2
解释:传感器 1 返回了所有正确的数据.
传感器 1 对第四个数据点的采集数据,被传感器2丢失了, 传感器 2 返回的最后一个数据被替换为 7 。
 
提示:
sensor1.length == sensor2.length
1 <= sensor1.length <= 100
1 <= sensor1[i], sensor2[i] <= 100

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/faulty-sensor 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 分别假设其中一个的末尾数据是假的,丢弃
代码语言:javascript
复制
class Solution:
    def badSensor(self, sensor1: List[int], sensor2: List[int]) -> int:
        i, j = 0, 0
        n = len(sensor1)
        while i < n and j < n-1: # 丢弃2的末尾
            if sensor1[i] == sensor2[j]:
                i += 1
                j += 1
            else:
                i += 1 # 不相等,长的移动一步
                if i>j+1: # 间隔超过1了,肯定不能匹配
                    break
        bad2 = (i==n and j==n-1)
        i, j = 0, 0
        while i < n-1 and j < n: # 丢弃1的末尾
            if sensor1[i] == sensor2[j]:
                i += 1
                j += 1
            else:
                j += 1
                if j>i+1:
                    break
        bad1 = (i==n-1 and j==n)
        if (bad1 and bad2) or (not bad1 and not bad2):
            return -1
        return 1 if bad1 else 2

24 ms 15.1 MB Python3


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/08/14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

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