CSP-J初赛常考的知识点包括算法与数据结构、编程基础、图论、动态规划等。下面是一些CSP-J初赛常考知识点的练习题。
1. 算法与数据结构:
题目描述:给定一个整数数组nums,找到数组中两个数的和等于给定目标值target的下标。假设每个输入只对应一个答案,且同一个元素不能被重复利用。
输入例子:nums = [2, 7, 11, 15], target = 9
输出例子:[0, 1]
请实现函数twoSum(nums, target),返回能够满足题目要求的两个数的下标。
```python
def twoSum(nums, target):
hash_map = {}
for i, num in enumerate(nums):
complement = target - num
if complement in hash_map:
return [hash_map[complement], i]
hash_map[num] = i
return []
```
2. 编程基础:
题目描述:给定一个字符串s,找出其中不含有重复字符的最长子串的长度。
输入例子:s = "abcabcbb"
输出例子:3
请实现函数lengthOfLongestSubstring(s),返回最长子串的长度。
```python
def lengthOfLongestSubstring(s):
char_set = set()
left = 0
max_len = 0
for right in range(len(s)):
while s[right] in char_set:
char_set.remove(s[left])
left += 1
char_set.add(s[right])
max_len = max(max_len, right - left + 1)
return max_len
```