相关疑难解决方法(0)

如何在混洗连续整数数组中找到重复元素?

我最近在某个地方遇到过一个问题:

假设您有一个1001整数的数组.整数是随机顺序,但您知道每个整数在1到1000之间(包括1和1000).此外,每个数字在数组中只出现一次,但一个数字除外,它出现两次.假设您只能访问数组的每个元素一次.描述一个算法来查找重复的数字.如果您在算法中使用了辅助存储,是否可以找到不需要它的算法?

我感兴趣的是第二部分,即不使用辅助存储.你有什么主意吗?

arrays algorithm duplicates

72
推荐指数
6
解决办法
6万
查看次数

如何在数组中找到不会出现两次的唯一数字

以下内容来自求职面试:

在包含整数的给定数组中,除了一个数字之外,每个数字重复一次,不重复.编写一个函数,查找不重复的数字.

我想过使用HashSet,但它可能会使一切变得复杂......

任何简单解决方案的想法?

java arrays algorithm

56
推荐指数
4
解决办法
3万
查看次数

在列表中查找单个数字

找到在列表中只出现一次的数字的最佳算法是什么,其中所有其他数字恰好发生两次.

因此,在整数列表中(让它作为一个数组),每个整数重复两次,除了一个.找到那个,什么是最好的算法.

puzzle algorithm

39
推荐指数
3
解决办法
2万
查看次数

在整数数组中查找第一个非重复数

我得到了这个问题的考试:

给定整数数组,使用O(N)时间复杂度和O(1)空间复杂度找到第一个不在数组中重复的数字.

我想不出任何解决方案.我知道我可以迭代数组并维护一个linkedhashmap,它将存储数组元素和它出现的次数,然后最后我必须搜索hashmap来找到那个数字.空间复杂度大于O(1)但我想不出其他解决方案.

我也仔细阅读问题,并说数组的最大尺寸为100万.我认为如果我们可以创建一个自定义散列图,它将使用100万大小的固定大小的数组,那么这可以在O(1)空间复杂度中实现,因为在这种情况下,所需的存储将是恒定的,但如果我是正确的则不确定.如果有任何其他解决方案,请告诉我.

c++ java algorithm

10
推荐指数
1
解决办法
6092
查看次数

"^ ="运算符在此查找非配对数字算法中做了什么?

看到一段有趣的代码,在重复数字列表中找到一个孤独的数字(列表中的每个数字除了一个之外都会出现两次).

function findNonPaired(listOfNumbers) {
  let nonPairedNumber = 0

  listOfNumbers.forEach((n) => {
      nonPairedNumber ^= n
  })

  return nonPairedNumber
}

const x = [1,5,4,3,9,2,3,1,4,5,9]
console.log(findNonPaired(x))
Run Code Online (Sandbox Code Playgroud)

这个解决方案看起来非常优雅,但我很好奇^=操作员在这里做了什么?

javascript bit-manipulation bitwise-operators

8
推荐指数
1
解决办法
803
查看次数

找到成对或三元组中单个数字的最佳方法

因为这是一系列问题中的一个问题.我正在修改它以使其不与其他的重复.谢谢你的帮助.

:我有一个整数数组.在数组中,除了一个元素外,每个元素都会出现两次.我想找到那个单号.

示例:[2, 4, 2, 1, 4, 1, 3],单个数字是3.

我的想法是使用a HashMap,这需要O(n)时间和O(n)空间.还有更好的解决方案吗?谢谢.

三元:每个元素出现三次,除了一个.找一个单一的.

示例:[1, 2, 4, 2, 4, 1, 2, 4, 1, 3],单个数字是3.

algorithm

6
推荐指数
1
解决办法
120
查看次数

在数组中查找不成对的数字

我有一个数组,其中除了一个重复所有元素:

int[] a={2,6,6,2,4,1,4};
Run Code Online (Sandbox Code Playgroud)

如何找到未配对的元素整数?

java arrays

4
推荐指数
1
解决办法
5028
查看次数

为什么我的python代码这么慢(leetcode)?

给定一个整数数组,除了一个元素外,每个元素都会出现两次.找一个单一的.

注意:您的算法应具有线性运行时复杂性.你能不用额外的内存来实现吗?

class Solution:
    # @param {integer[]} nums
    # @return {integer}
    def singleNumber(self, nums):
        prev = []
        for i,j in enumerate(nums):
            if j in prev:
                nums[i] = -j
            else:
                prev.append(j)
        return sum(nums)
Run Code Online (Sandbox Code Playgroud)

这是来自leetcode的问题,实际上是AC率最高的问题.但是,正如我的代码所说,它告诉我时间限制已超出并且无法被接受.任何人都可以分析我的代码,包括复杂性吗?非常感谢.

Upadate:谢谢大家,我已将"prev"从列表更改为一组,这很好用!

class Solution:
    # @param {integer[]} nums
    # @return {integer}
    def singleNumber(self, nums):
        prev = set([])
        for i,j in enumerate(nums):
            if j in prev:
                nums[i] = -j
            else:
                prev.add(j)
        return sum(nums)
Run Code Online (Sandbox Code Playgroud)

但是,正如问题所描述的那样,我仍在寻找不需要额外记忆的解决方案.

更新:我使用另一种方法尝试解决问题,但再次收到超时时间.

class Solution:
    # @param {integer[]} nums
    # @return {integer}
    def singleNumber(self, nums):
        for i,j …
Run Code Online (Sandbox Code Playgroud)

python algorithm

4
推荐指数
1
解决办法
845
查看次数

如何在数组中找到未耦合的整数?

可能重复:
查找数组中未出现两次的整数
埃森哲面试问题 - 找到数组中唯一未配对的元素

给定一个奇数大小的整数数组.除了单个整数外,数组中的所有整数都会出现两次.如何以最有效(内存和复杂度)的方式找到这个非耦合的整数?

c c++ algorithm

1
推荐指数
1
解决办法
3475
查看次数

使用php查找数组中出现一次的元素

我有很多关于这个问题的答案使用其他语言,但我想要一个 php 语言的答案。请任何人帮助我这是我的阵列看起来像

$array = [1, 2, 3, 4, 4, 1, 2, 5, 5, 11, 11];
Run Code Online (Sandbox Code Playgroud)

php arrays

-1
推荐指数
1
解决办法
482
查看次数