几道算法题

### 超级大脑算法练习题 超级大脑项目是一个综合性的编程实践平台,旨在通过解决实际问题来提升编程能力。以下是一些与超级大脑相关的算法练习题,涵盖常见的算法思想和实现方法[^3]。 #### 练习题 1:数组去重 编写一个函数,接收一个整数数组作为输入,并返回一个去重后的数组。 ```python def remove_duplicates(arr): return list(set(arr)) # 示例 print(remove_duplicates([1, 2, 3, 2, 4, 1])) # 输出: [1, 2, 3, 4] ``` #### 练习题 2:两数之和 给定一个整数数组 `nums` 和一个目标值 `target`,请从数组中找出两个数,使得它们的和为目标值,并返回这两个数的索引。 ```python def two_sum(nums, target): num_to_index = {} for i, num in enumerate(nums): complement = target - num if complement in num_to_index: return [num_to_index[complement], i] num_to_index[num] = i # 示例 print(two_sum([2, 7, 11, 15], 9)) # 输出: [0, 1] ``` #### 练习题 3:字符串反转 编写一个函数,接收一个字符串作为输入,并返回该字符串的反转结果。 ```python def reverse_string(s): return s[::-1] # 示例 print(reverse_string("hello")) # 输出: "olleh" ``` #### 练习题 4:斐波那契数列 编写一个函数,接收一个整数 `n` 作为输入,并返回第 `n` 个斐波那契数。 ```python def fibonacci(n): if n <= 0: return 0 elif n == 1: return 1 a, b = 0, 1 for _ in range(2, n + 1): a, b = b, a + b return b # 示例 print(fibonacci(10)) # 输出: 55 ``` #### 练习题 5:最大子数组和 给定一个整数数组 `nums`,找到一个具有最大和的连续子数组,并返回其最大和。 ```python def max_subarray(nums): current_sum = max_sum = nums[0] for num in nums[1:]: current_sum = max(num, current_sum + num) max_sum = max(max_sum, current_sum) return max_sum # 示例 print(max_subarray([-2, 1, -3, 4, -1, 2, 1, -5, 4])) # 输出: 6 ``` ### 算法练习的意义 通过解决这些算法问题,可以提高对数据结构和算法的理解,同时培养解决问题的能力。LeetCode等平台提供了丰富的题目资源,是提升编程技能的重要途径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值