abs 面试题目

1. Give two trends according to recent ICT development, which will contribute to abs IT department?

2. From ICT perspective, what abs needs to improve?

3 Team work? (好像是)

4. If you are invited by two experienced (software) engineers for a project and you find something which is inefficient and you know how to fix/improve that because 

you just read/learned some knowledge about it, what you will do? (这里 两个 engineers 很关键,你可以先和一个解释,再和另一个解释,还可以向 project manager 解释, 最终达到你说服他们的目的).

5. Describe a previous project you worked on and state what you did good and what you did not that good. If you were given another chance, what would you like to improve that?

### 线性表数据结构面试题汇总 线性表是一种基本的数据结构,在计算机科学领域具有重要地位。以下是关于线性表的一些常见面试题目及其解答: #### 1. **什么是线性表?** 线性表是由n(n≥0)个相同类型的元素构成的有限序列,可以为空表。其特点是每个元素都有唯一的前驱和后继[^3]。 #### 2. **线性表的特点是什么?** - 线性表中的数据元素是同一种类型。 - 每个元素有唯一的一个直接前驱和直接后继(除了首尾两个特殊位置)。 - 线性表支持随机访问操作,即可以通过索引快速定位某个元素的位置[^1]。 #### 3. **线性表有哪些存储方式?** 线性表有两种主要的存储方式:顺序存储和链式存储。 - **顺序存储**:通过数组实现,优点是可以快速按位查找;缺点是在插入删除时可能需要移动大量元素。 - **链式存储**:通过指针连接节点来表示逻辑上的前后关系,适合频繁增删场景下的应用。 #### 4. **如何判断单链表是否有环?** 使用双指针法(快慢指针)。定义两个指针slow和fast,初始都指向头结点head。每次迭代中,让slow向前走一步而fast则前进两步。如果存在环,则这两个指针最终会相遇;否则当fast到达null时表示无环。 ```python def has_cycle(head): slow, fast = head, head while fast and fast.next: slow = slow.next # 移动一次 fast = fast.next.next # 移动两次 if slow == fast: # 如果相等说明成环 return True return False # 走到最后都没有遇到重复节点代表不成环 ``` #### 5. **已知一个带头结点的单向循环链表L,设计算法求出该链表长度len(L)** 设p为工作指针,初始化计数值count=0并令p=L->next; 当p不等于L时执行如下操作直到条件满足为止——使p=p->next并将count加一;最后返回count即可得到整个列表的实际大小。 ```c++ int Length(LinkList L){ int count=0; LinkNode *p=L->next; while(p != NULL && p!=L ){ ++count ; p=p->next ; } return count; } ``` #### 6. **给定一个整数k以及一个含有N个不同正整数的有序数组arr[] ,请编写函数找出所有差值绝对值小于等于K 的数对数目 。** 采用滑动窗口技术解决此问题。先设定左边界left=right=0 ,再逐步增大右端直至找到符合条件的最大区间[right-left+1];接着更新答案ans += (right - left); 最后再把左侧收缩至仍保持有效状态的位置处继续上述过程直至遍历结束[^2]. ```java public static long findPairs(int [] nums,int k){ Arrays.sort(nums); long res = 0l; int n =nums.length; int j=0; for(int i=0;i<n;++i){ if(i>0&&nums[i]==nums[i-1]) continue;//去重处理 while(j<i&&(long)Math.abs((double)(nums[j]-nums[i]))<=k )j++; res+=Math.max(0,j-i-1); } return res; } ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值