Leey's

独立思考,以行践言


  • 首页

  • 标签

  • 目录

  • 归档

  • 搜索

278. 第一个错误的版本

发表于 2021-03-11   |   分类于 LeetCode   |   暂无评论

描述

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

假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。

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

解题思路

只要找到一个数是正确版本且它的下个一版本是错误版本即可。考虑到减少API的调用次数,可考虑使用二分查找。

阅读全文

88. 合并两个有序数组

发表于 2021-03-10   |   分类于 LeetCode   |   暂无评论

描述

给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。

初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。

解题思路

前面有链表版本的合并21. 合并两个有序链表,原理一致,双指针从后往前遍历一次即可完成合并。

阅读全文

108. 将有序数组转换为二叉搜索树

发表于 2021-03-10   |   分类于 LeetCode   |   暂无评论

题目描述

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。
高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

解题思路

由于是排好序的数组,只要每次去中间的元素作为root节点,然后进行递归完成即可。


阅读全文

102. 二叉树的层序遍历

发表于 2021-03-08   |   分类于 LeetCode   |   暂无评论

描述

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树:[3,9,20,null,null,15,7]

    3
   / \
  9  20
    /  \
   15   7

返回其层序遍历结果:

[
  [3],
  [9,20],
  [15,7]
]

解题思路

利用队列(列表)实现层次遍历即可



阅读全文

101. 对称二叉树

发表于 2021-03-08   |   分类于 LeetCode   |   暂无评论

描述

给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

    1
   / \
  2   2
 / \ / \
3  4 4  3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

    1
   / \
  2   2
   \   \
   3    3

进阶:
你可以运用递归和迭代两种方法解决这个问题吗?

解题思路

开始的思路是使用中序遍历,添加null值,判断中序遍历的结果是否为回文串,但是无法通过全部的测试集用例如[1,2,2,2,null,2] 。后直接使用递归完成。



阅读全文

123456789
0x19A

0x19A

44 文章
5 分类
27 标签
GitHub V2EX
© 2025 本站总访问量:56,312次 0x19A
Typecho
主题 - NexT.Pisces