📅  最后修改于: 2023-12-03 14:47:52.946000             🧑  作者: Mango
本文将会介绍我在 TCS Codevita 2019 数字面试中的体验。
TCS Codevita 是 TCS 公司举办的面向全球的编程竞赛,旨在发现和培养程序员的编程能力和团队合作精神。这项竞赛分为两个阶段:数字面试和编程竞赛。在数字面试阶段中,考生需要在 vTest(TCS 平台)上通过编程相关的题目和选择题进行筛选。最终通过的考生将有机会进入编程竞赛的下一轮。
我在 TCS Codevita 2019 中通过了数字面试测试。以下是我的一些体验和建议:
在数字面试前,我准备了以下材料:
在数字面试中,我碰到了一些选择题和编程题。其中选择题比较简单,主要考查基本编程知识和算法。编程题则更加复杂,需要使用多种算法和数据结构进行解决。
以下是一道数字面试中的编程题(题目不完整):
给出一个大小为N的数组,其中的元素是正整数。请找出一个最长的连续子序列A,使得其的和能被M整除。输出这个子序列的长度。
输入:第一行是一个正整数T,表示测试数据的组数。每组数据的第一行包含两个正整数N和M(1<=N,M<=10^5)。接下来一行是N个用空格隔开的正整数,表示数组的元素。
输出:对于每一组数据,输出一个正整数,表示最长连续子序列的长度。
对于这个问题,我使用了前缀和和哈希表等知识点。代码如下:
for _ in range(t):
n, m = map(int, input().split())
nums = list(map(int, input().split()))
cum_sum = 0
mod_dict = {0: -1}
max_len = 0
for i in range(n):
cum_sum = (cum_sum + nums[i]) % m
if cum_sum in mod_dict:
max_len = max(max_len, i - mod_dict[cum_sum])
else:
mod_dict[cum_sum] = i
print(max_len)
通过 TCS Codevita 2019 的数字面试,我学习并掌握了许多有用的编程知识和技巧。同时,我也认识到了自己还需要努力改进的方面。对于那些准备参加 TCS Codevita 的人来说,我的建议是充分准备,熟练掌握基本编程知识和算法,并保持自信和冷静。