• Day 59


    第278题:

    你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。

    假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。来源:力扣(LeetCode)

    你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。

    1、可以直接一次遍历来判断第几个使错误版本,但是超时;

      也可以二分法来判定第几个是错误版本,left=0,right=n,mid=left+(right-left)/2;

      然后依次判断错误版本在左部分还是在右部分,最后得出结果。

      

    第268题:

    给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。(来自LeetCode)

    1、利用异或抵消存在的数,最终的就是不存在的数。

      

    2、计算所有数的和sum,然后计算1-n的和,减去sum,得出结果。

      

    第274题:

    给定一位研究者论文被引用次数的数组(被引用次数是非负整数)。编写一个方法,计算出研究者的 h 指数。

    h 指数的定义:h 代表“高引用次数”(high citations),一名科研人员的 h 指数是指他(她)的 (N 篇论文中)总共有 h 篇论文分别被引用了至少 h 次。(其余的 N - h 篇论文每篇被引用次数 不超过 h 次。)来源:力扣(LeetCode)

    例如:某人的 h 指数是 20,这表示他已发表的论文中,每篇被引用了至少 20 次的论文总共有 20 篇。

    1、将数组内元素升序排序,那么论文被引用次数越大的就越在后面;

      然后假设数组里面的所有n篇论文各自的被引用次数都>=n,那么H指数=n;

      然后遍历数组,如果第一篇论文的被引用次数小于n说明H质数不能为n,那么就减一变成n-1;

      遍历完数组就得到了最终的H指数。

      

    第275题:

    和上一题一样,只是给定的数组已经是升序排序的。

    1、利用上面的方法也可以得出结果,和上面类似的一种写法也可以。

      

    2、二分法查找中间的那个值。

      

  • 相关阅读:
    Socket
    字符串,byte,字典转换整理
    1-嵌入式面试题库
    10-FreeRTOS 队列
    9-FreeRTOS API获取任务使用CPU时间
    7-代码区 | 常量区 | 静态区(全局区) | 堆区 | 栈区
    8-FreeRTOS任务API
    7-FreeRTOS时间片进行任务调度
    6-C指针
    用Union体测试处理器大小端
  • 原文地址:https://www.cnblogs.com/liang-yi-/p/13605220.html
Copyright © 2020-2023  润新知