算法题:有序数组中唯一值

问题描述 给定一个有序数组,其中所有元素都成对出现(出现两次),只有一个元素出现一次。要求在 O(log n) 的时间复杂度内找出这个唯一出现一次的元素。 例如: [2, 2, 4, 4, 6, 6, 7, 8, 8, 9, 9] → 结果为 7 [1, 1, 2, 3, 3, 4, 4, 5, 5] → 结果为 2 [3, 3, 7, 7, 10, 11, 11] → 结果为 10 解题思路 这道题的关键在于利用有序数组的性质和二分查找来达到对数时间复杂度。核心观察是: ...

May 5, 2026 · 2 min · biglonglong

算法题:小于n的最大数

问题描述 给定一个数n(如23121)和一组数字A(如{2,4,9}),求由A中元素组成的、小于n的最大数。 例如: n = 23121, A = {2,4,9} → 结果为 22999 n = 2533, A = {1,2,4,9} → 结果为 2499 n = 988822, A = {4,2,9,8} → 结果为 988499 n = 9, A = {9,8} → 结果为 8 n = 56449, A = {9,6,3,5} → 结果为 56399 解题思路 这道题本质上是一个数字组合问题,需要在给定数字集合中选出数字组成一个小于目标数n的最大数。关键点在于: ...

March 3, 2026 · 3 min · biglonglong