📜  资质| Wipro模拟测试|问题5(1)

📅  最后修改于: 2023-12-03 14:57:48.216000             🧑  作者: Mango

资质 | Wipro 模拟测试 | 问题5
简介

本练习是Wipro的模拟测试中第五个问题,旨在考察程序员在编写代码时的逻辑思维和语言表达能力。

题目描述

给定一个整数数组,编写一个函数来查找其中是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。

例如:

输入: [1,2,3,1] 输出: true

输入: [1,2,3,4] 输出: false

输入: [1,1,1,3,3,4,3,2,4,2] 输出: true

解题思路

本题是很基础的算法题,可以使用哈希表来解决。具体思路如下:

  1. 声明一个哈希表,用于记录数组中出现的元素。
  2. 遍历数组,对于数组中的每个元素,如果该元素已经在哈希表中出现过,说明存在重复元素,返回 true,否则将该元素添加到哈希表中。
  3. 如果遍历完数组都没有返回 true,则说明不存在重复元素,返回 false。
代码实现
def containsDuplicate(nums: List[int]) -> bool:
    # 声明一个哈希表
    num_dict = {}
    # 遍历数组
    for num in nums:
        # 如果该元素已经在哈希表中出现过,说明存在重复元素,直接返回 true
        if num in num_dict:
            return True
        # 将该元素添加到哈希表中
        num_dict[num] = 1
    # 如果遍历完数组都没有返回 true,则说明不存在重复元素,返回 false
    return False
总结

本题是一道比较基础的算法题,通过使用哈希表来解决,可以使时间复杂度降到 O(n)。在实际工作中,程序员需要掌握各种常见的数据结构和算法,才能写出高效、可靠且易于维护的代码。