428 日 , 2024 15:08:36
力扣第 395 场周赛

1 找出与数组相加的整数 I

题目描述:

数组 nums1 中的每个元素都与变量 x 所表示的整数相加。如果 x 为负数,则表现为元素值的减少。

在与 x 相加后,nums1nums2 相等 。当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组 相等

返回整数 x

数据约束:

数组大小 $n \le 100$;数据大小 $0 \le a_i \le 1000$。

解题思路:

数据范围很小,基本随便暴力。既然数据是定制化的,那么将两个数组排序后,下标相同的位置必然是一一对应的。再取一个特殊情况,两个数组的最小值,也是对应关系。那么答案就是这两个最小值的差值。

复杂度:时间复杂度 $O(n)$,空间复杂度 $O(1)$​。

2 找出与数组相加的整数 II

题目描述:

给你两个整数数组 nums1nums2

nums1 中移除两个元素,并且所有其他元素都与变量 x 所表示的整数相加。如果 x 为负数,则表现为元素值的减少。

执行上述操作后,nums1nums2 相等 。当两个数组中包含相同的整数,并且这些整数出现的频次相同时,两个数组 相等

返回能够实现数组相等的 最小 整数 x

数据约束:

数组大小 $3 \le n \le 200$;数据大小 $0 \le a_i \le 1000$。

解题思路:

题目数组 1 要进行删减操作,而数组 2 并不需要。我们可以把题目反过来,在数组 2 上最大可以加多少,使其可以在数组 1 中找到与之对应的数(不重复)。答案范围肯定在 $-1000 \le ans \le 1000$,不妨对该区间的答案一一尝试,直到找到答案为止。

复杂度:时间复杂度 $O(\alpha n)$;空间复杂度 $O(\log n)$,维护每个数据出现的次数便于做比较。

3 数组最后一个元素的最小值

题目描述:

给你两个整数 nx 。你需要构造一个长度为 n正整数 数组 nums ,对于所有 0 <= i < n - 1 ,满足 nums[i + 1] 大于 nums[i] ,并且数组 nums 中所有元素的按位 AND 运算结果为 x

返回 nums[n - 1] 可能的 最小 值。

数据约束:

$0 \le n, x \le 10^8$。

解题思路:

既然所有数据的按位与运算的结果要等于 $x$,那么所有数据在 $x$ 的比特位为 1 的位置上都必须为 1。那可以修改的空间就剩其余不是 1 的位置,抛去所有为 1 的位置,剩下位置进行填数,是数组严格递增。很明显,就是填 0,1,2,3,4……,直到填到 n – 1 为止。

那么做法就是,将 $n – 1$ 的二进制数嵌入到 $x$ 的二进制数不为 1 的地方。

复杂度:时间复杂度和空间复杂度都很小。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!