双指针的应用
1.双指针 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。双指针可以从不同的方向向中间逼近也可以朝着同一个方向遍历。
2.使用双指针
反转数组中的元素。
其思想是将第一个元素与末尾进行交换,再向前移动到下一个元素,并不断地交换,直到它到达中间位置。我们可以同时使用两个指针来完成迭代:一个从第一个元素开始,另一个从最后一个元素开始。持续交换它们所指向的元素,直到这两个指针相遇。
void reverse(int *v, int N)
{
int i = 0;
int j = N - 1;
while (i < j)
{ swap(v[i], v[j]);
i++;
j–; }
}
贪心算法
思想:当我们看到一个题的时候,要分析它要达到什么目标,要考虑它是不是一个贪心算法的题,对于一个贪心算法我们具体应该怎么去贪,把求解的问题分解成若干子问题的局部最优解,从局部最优到全局最优。
小知识
对于题中有除法运算,尽量转换成乘法运算,因为除法的精度不好控制。
本周学习感受
随着学习的深入,我深深的体会到了做题的难度,题目的难度不仅仅是会不会写代码,难度主要提现在如何去思维,如何去解决问题,做题的时候思考的过程占据了绝大部分时间,而我也从中体会到了快乐,比如它怎么才能运行,他为什么不能运行,它为什么又能运行。在一遍一遍的调试中我体会到了编程的快乐。
acm第二周学习指导
最新推荐文章于 2022-12-15 21:33:14 发布