acm第二周学习指导

双指针的应用
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–; }
}
贪心算法
思想:当我们看到一个题的时候,要分析它要达到什么目标,要考虑它是不是一个贪心算法的题,对于一个贪心算法我们具体应该怎么去贪,把求解的问题分解成若干子问题的局部最优解,从局部最优到全局最优。
小知识
对于题中有除法运算,尽量转换成乘法运算,因为除法的精度不好控制。
本周学习感受
随着学习的深入,我深深的体会到了做题的难度,题目的难度不仅仅是会不会写代码,难度主要提现在如何去思维,如何去解决问题,做题的时候思考的过程占据了绝大部分时间,而我也从中体会到了快乐,比如它怎么才能运行,他为什么不能运行,它为什么又能运行。在一遍一遍的调试中我体会到了编程的快乐。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值