字节跳动笔试题python
时间: 2024-01-25 11:13:04 浏览: 240
以下是字节跳动笔试题的Python解法:
```python
n, dist = map(int, input().split())
nums = list(map(int, input().split()))
res = 0
i = 0
j = 2
while i < n-2:
while j < n and nums[j] - nums[i] <= dist:
j += 1
if j - 1 - i >= 2:
num = j - i - 1
res += num * (num - 1) // 2
i += 1
res = res % 99997867
print(res)
```
这段代码是用来解决字节跳动笔试题的问题。它首先从输入中获取两个整数n和dist,然后获取一个包含n个整数的列表nums。接下来,它使用两个指针i和j来遍历列表nums,并计算满足条件的子数组的数量。最后,它将结果取模99997867并打印出来。
相关问题
字节跳动2024后端真题
### 字节跳动2024年后端开发面试与笔试题目分析
对于想要了解字节跳动2024年后端开发岗位的面试和笔试情况的人而言,虽然具体的2024年题目尚未公开,但从过往的经验可以看出一些趋势和重点。
#### 过往经验总结
在过去几年里,字节跳动对应聘者的技术能力考察非常严格。例如,在一次应聘经历中提到,三个月前投递字节笔试未能通过,但在参加散招免笔试的情况下成功入职字节跳动后端开发岗[^1]。这表明即使在笔试环节表现不佳,仍然有机会通过其他途径获得工作机会。不过,为了提高竞争力,准备充分仍然是必要的。
#### 技术知识点覆盖范围
根据以往招聘中的技术考查方向,可以预见以下几个方面将是重点:
- **并发控制**:如`Java synchronized`, `Lock`, `AtomicInteger`底层原理等都是常见的考点之一[^3]。
- **集合框架**:特别是关于`HashMap`以及更复杂的`ConcurrentHashMap`内部结构及其线程安全特性也是不可忽视的内容。
- **微服务架构组件理解**:比如Spring Cloud Eureka的服务注册发现机制;ZooKeeper集群管理及Leader选举算法等方面的知识点可能会涉及到。
- **AOP面向切面编程的理解程度**:包括但不限于能否利用CGLIB库来实现代理模式等问题也可能成为考核的一部分。
- **JVM调优技巧**:掌握不同类型的垃圾收集器运作机理,并能够解释强/软/弱/幻象四种引用的区别及其适用场景同样重要。
#### 实际案例模拟——位置排序问题
考虑到实际应用层面的要求,这里给出一道典型的算法挑战作为例子:“给定N个小朋友站成一圈,其中既有男孩也有女孩,请问最少需要多少次相邻两人互换座位才能使得所有同性别成员连续站立?”此题不仅测试了候选人的逻辑思维能力和解决问题的能力,同时也反映了其对复杂度优化的关注度[^5]。
```python
def min_swaps_to_group_by_gender(circle):
n = len(circle)
count_boys, count_girls = circle.count('B'), circle.count('G')
# 如果全是同一性别,则无需任何操作
if not (count_boys and count_girls):
return 0
max_consecutive_same_sex = 0
current_streak = 0
for i in range(n * 2): # 双倍遍历以考虑循环数组的情况
index = i % n
if circle[index] == 'B':
current_streak += 1
else:
max_consecutive_same_sex = max(max_consecutive_same_sex, current_streak)
current_streak = 0
max_consecutive_same_sex = max(max_consecutive_same_sex, current_streak)
result = min(count_boys - max_consecutive_same_sex,
count_girls - (n - max_consecutive_same_sex))
return result
```
多益网络校招后端笔试题
### 多益网络校招后端开发笔试题解析
尽管当前未提供具体关于多益网络2024年校招后端开发笔试题的直接引用,但从其他公司的校招题目中可以推测出一些常见的考点和解题思路。以下是基于行业趋势和技术需求整理的内容。
#### 数据结构与算法
在后端开发岗位中,数据结构与算法是核心考察点之一。例如,在字节跳动2024年的校招中提到过涉及数组、链表、树以及动态规划等问题[^1]。对于类似的公司如多益网络,可能会重点考查以下几个方面:
- **字符串处理**:可能涉及到子串匹配、回文判断等操作。
- **排序与查找**:快速排序实现及其时间复杂度分析;二分查找的应用场景。
- **图论问题**:最短路径计算(Dijkstra/Bellman-Ford/Floyd-Warshall)、拓扑排序等。
```python
def dijkstra(graph, start_node):
import heapq
distances = {node: float('inf') for node in graph}
distances[start_node] = 0
priority_queue = [(0, start_node)]
while priority_queue:
current_distance, current_node = heapq.heappop(priority_queue)
if current_distance > distances[current_node]:
continue
for neighbor, weight in graph[current_node].items():
distance = current_distance + weight
if distance < distances[neighbor]:
distances[neighbor] = distance
heapq.heappush(priority_queue, (distance, neighbor))
return distances
```
上述代码展示了如何利用优先队列来高效求解单源最短路径问题。
#### 编程语言基础
掌握一门或多门主流编程语言也是必备能力。Python因其简洁性和强大的库支持成为热门选择之一。然而像Java这样的强类型静态编译型语言同样受到青睐,尤其是在企业级应用开发领域。以下是一些典型知识点:
- 面向对象特性:继承机制、接口定义;
- 并发控制手段:线程同步方法(lock/mutex),异步IO模型(asyncio);
- 错误处理方式:try-except 结构下的异常捕获逻辑。
#### 微服务架构与分布式系统设计
随着云计算技术的发展,越来越多的企业采用微服务架构构建其业务平台。因此候选人需具备一定水平的服务拆分原则理解和实践经验。比如RESTful API的设计准则,gRPC框架的优势对比等等。
另外还需熟悉数据库选型依据(关系型 vs 非关系型),缓存策略(redis/memcached)以及消息中间件(kafka/rabbitmq)[^3].
#### IP地址分类及相关概念
考虑到网络安全的重要性日益增加,有时也会测试应聘者对计算机网络基础知识的理解程度。下面给出一段有关IP地址划分的信息作为参考:
IPv4 地址由四个十进制数构成,每个数值范围介于0至255之间,总共占据32比特空间。根据首段八位组取值不同分为五种类别:A,B,C,D,E其中前三位分别对应于`0`,`10`, `110`. A类保留给政府机构使用; B 类适合中型企业内部通信 ; C 则普遍应用于小型局域网环境当中 [^4].
最后附上一道模拟找零钱的小程序例子供学习交流之用 :
```python
def min_coins(amount):
coins = [64, 16, 4, 1]
count = 0
for coin in coins:
num_coin = amount // coin
count += num_coin
amount -= num_coin * coin
return count
print(min_coins(98)) # 输出应为7
```
此函数实现了贪心算法解决固定面额货币组合最小数量的问题 [^5].
阅读全文
相关推荐

















