- 2
- 0
- 约7.1千字
- 约 23页
- 2026-02-10 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年人工智能工程师岗位面试题库含答案
一、编程基础(5题,每题10分)
1.题目:请用Python编写一个函数,实现快速排序算法,并对列表`[34,7,23,32,5,62]`进行排序。
答案:
python
defquick_sort(arr):
iflen(arr)=1:
returnarr
pivot=arr[len(arr)//2]
left=[xforxinarrifxpivot]
middle=[xforxinarrifx==pivot]
right=[xforxinarrifxpivot]
returnquick_sort(left)+middle+quick_sort(right)
print(quick_sort([34,7,23,32,5,62]))
解析:快速排序通过分治法将列表分为小于、等于、大于基准值的三部分,再递归排序左右两部分。时间复杂度为O(nlogn),最坏情况为O(n2)。
2.题目:请用Java实现一个单链表,包含添加节点、删除节点和查找节点的方法。
答案:
java
classListNode{
intval;
ListNodenext;
ListNode(intx){val=x;}
}
classLinkedList{
ListNodehead;
publicvoidadd(intval){
ListNodenewNode=newListNode(val);
if(head==null){
head=newNode;
}else{
ListNodecurrent=head;
while(current.next!=null){
current=current.next;
}
current.next=newNode;
}
}
publicvoiddelete(intval){
if(head==null)return;
if(head.val==val){
head=head.next;
return;
}
ListNodecurrent=head;
while(current.next!=nullcurrent.next.val!=val){
current=current.next;
}
if(current.next!=null){
current.next=current.next.next;
}
}
publicListNodefind(intval){
ListNodecurrent=head;
while(current!=nullcurrent.val!=val){
current=current.next;
}
returncurrent;
}
}
解析:单链表通过节点和next指针实现,添加节点需遍历至末尾,删除节点需找到前驱节点,查找节点需遍历。
3.题目:请用C++实现一个二叉搜索树(BST),包含插入节点和中序遍历的方法。
答案:
cpp
structTreeNode{
intval;
TreeNodeleft;
TreeNoderight;
TreeNode(intx):val(x),left(nullptr),right(nullptr){}
};
classBST{
public:
TreeNoderoot;
BST():root(nullptr){}
voidinsert(intval){
root=insertHelper(root,val);
}
voidinorder(){
inorderHelper(root);
}
private:
TreeNodeinsertHelper(TreeNodenode,intval){
if(node==nullptr)returnnewTreeNode(val);
if(valnode-val)node-left=insertHelper(node-left,val);
elsenode-right=insertHelper(node-right,val);
returnnode;
}
voidinorderHelper(TreeNodenode){
if(node!=nullptr){
inorderHelper(node-left);
std::
原创力文档

文档评论(0)