简介:本文将为你提供100道经典的算法题目,以及相应的代码实现。这些题目涵盖了各种常见的算法和数据结构问题,从基础到进阶,适合各个水平的读者。我们将分上下两篇进行解答,本篇为上篇,共包含50道题目。
题目1:数组中只出现一次的数字
题目描述:给定一个长度为 n 的数组,其中只有一个数字出现了奇数次,其他数字都出现了偶数次。找出这个出现奇数次的数字。
示例:
输入: [2, 2, 1, 1, 0, 0]
输出: 0
解题思路:使用异或运算(XOR)。由于出现偶数次的数字异或结果为0,而出现奇数次的数字异或结果为该数字本身。
代码实现:
def singleNumber(nums):res = 0for num in nums:res ^= numreturn res
题目2:两数之和
题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。
示例:
输入: nums = [2, 7, 11, 15], target = 9
输出: [0, 1]
解题思路:使用哈希表。遍历数组,对于每个元素,在哈希表中查找是否存在与当前元素相加等于目标值的元素。
代码实现:
def twoSum(nums, target):hashMap = {}for i in range(len(nums)):complement = target - nums[i]if complement in hashMap:return [hashMap[complement], i]hashMap[nums[i]] = i