题目来源于知识星球—英雄算法联盟,七月算法集训专题
前言
跟随英雄算法联盟博主—英雄哪里出来,每天完成相应的算法练习,一个月后,必定会有所成长!
一、707.设计链表(中等)
1.题目描述
2.解题思路
看的题解,加深理解!
3.代码演示(C++)
class MyLinkedList
{
struct Node
{
int val;
Node *next;
Node()
{
next = NULL;
}
Node(int v) : val(v), next(NULL) {}
};
Node *dummyHead;
public:
MyLinkedList()
{
dummyHead = new Node();
}
int get(int index)
{
Node *now = dummyHead;
for(int i = 0; i <= index; ++i)
{
now = now->next;
if(now == NULL)
{
return -1;
}
}
return now->val;
}
void addAtHead(int val)
{
Node *p = new Node(val);
Node *dnext = dummyHead->next;
dummyHead->next = p;
p->next = dnext;
}
void addAtTail(int val)
{
Node *p = new Node(val);
Node *now = dummyHead;
while(now->next)
{
now = now->next;
}
now->next = p;
}
void addAtIndex(int index, int val)
{
Node *p = new Node(val);
Node *now = dummyHead;
if(index < 0)
{
addAtHead(val);
return ;
}
for(int i = 0; i < index; ++i)
{
now = now->next;
if(now == NULL)
{
return ;
}
}
Node *nnext = now->next;
now->next = p;
p->next = nnext;
}
void deleteAtIndex(int index)
{
if(get(index) == -1)
{
return ;
}
Node *now = dummyHead;
for(int i = 0;i < index; ++i)
{
now = now->next;
}
now->next = now->next->next;
}
};
4.题目链接
二、2326.螺旋矩阵 IV(中等)
1.题目描述
2.解题思路
以后再战!
3.代码演示(C++)
4.题目链接
总结
每天跟随英雄哥学习相关的算法,一个月会收获很多,如果你想了解更多关于知识星球的内容,欢迎联系我!