首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每日算法(42)

先来回顾一下上期的问题及答案:

合并两个有序数组

题目描述:

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

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

示例 1:

输出:

示例 2:

输入:

输出:

提示:

以下是使用 TypeScript 实现的解答:

解题思路:

由于 的空间足够容纳两个数组的元素,我们可以从后往前遍历两个数组,并将较大的元素放在 的末尾。

使用三个指针,分别指向 的有效元素的末尾、 的末尾,以及合并后的数组的末尾。

从后往前遍历,比较 和 的大小,将较大的元素放在 的末尾,并将对应指针往前移动。

如果 的元素还没有遍历完,将其余元素直接复制到 的末尾。

最终 中就是合并后的有序数组。

时间复杂度分析:

遍历两个数组的时间复杂度是 O(m + n),其中 m 和 n 分别为两个数组的长度。

空间复杂度分析:

使用了常数个额外变量,空间复杂度为 O(1)。

下一期

有效的括号

题目描述:

给定一个只包含字符 ,,,, 和 的字符串 ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:

输入:输出:

示例 2:

输入:输出:

示例 3:

输入:输出:

示例 4:

输入:输出:

示例 5:

输入:输出:

提示:

`1

仅由括号 ,,,, 和 组成

  • 发表于:
  • 原文链接https://page.om.qq.com/page/Ont9JUiObF2BWet5WlyEoCSw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券