zoukankan      html  css  js  c++  java
  • 2019.7.15刷题统计

    以后几天主要刷入门组原来不会的题。

    第一题:1036

    原来代码:

    可以看出红框里的代码全部没有审清题意。

    今天看了dgc的代码,发现循环只需要从3循环到n-1,而且根本没必要把上车人数、下车人数、当前人数全部记录下来,更不需要编写一个函数做这项工作。

    后来我再提交的时候错误一个点,最后发现b的循环需要从0开始。

    今天发现入门组的题目都没有我想的那么复杂,看问题有时需要看简单一点儿,这样可以使思路更明确,做题速度也会加快。

    同时做题提交后发现错误时,应该再读一遍题目,并改进代码,绝对不能放弃。

    AC代码:

    第二题:1041

    原来代码:

    这道题可以说是递归中最简单的题目之一了,但是当时还是错了。当时有两处思路错误:

    ①既然每个状态只与前一个状态有关,而且用过一遍以后再也不会用了,就只需要用一个变量记录上一个状态,不需要开数组,浪费了空间(这并不主要)

    ②循环边界条件有误:第一个循环应该是for(int i=1; i<=n-p; i++),第二个则应该是for(int i=n-p+1; i<=n; i++)。造成这个错误的原因是没有看清题目:“有m刀没有经过中间点”被我看成了“有m刀经过中间点”。

    看了lijunhui的代码才发现自己犯了这样可笑的错误。

    AC代码:

    另一种以公式形式解的AC代码:

    其中核心语句中2*(n-m)指经过中间点的切法分成的份数,再加上(2*n-m+1)*m/2,也就是从n开始倒着往后数m个数的和(即不经过中间点的切法每刀能够形成的交点数之和,与高斯求和差不多)。

    第三题(也是最后一题):1042

    原来代码:

    像这样的暴力解法,时间超限也是正常的。

    这道题本身有一定难度,看了sunxiyue的代码后,刚开始没理解,考虑了几分钟之后才发现每行代码的意思,这么高深、快捷、实用的代码我是想不出来的。

    后来因为这份代码里有许多细节问题,所以提交了好几次都没能通过,不过最后还是自己写对了。

    AC代码:

    在今天完成的3道题中,这道题是给我收获最大的,而这道题也是唯一一道让我收获了更好思路的题目。

  • 相关阅读:
    Activity传递数据
    Java JDK环境变量配置
    Java与IOS日期格式
    第十四篇 ANDROID的 BLUETOOTH 实现机制--中介模式和代理模式
    第十五篇 Android 的Backup服务管理机制--助手模式
    第十八篇 ANDROID的声音管理系统及服务
    使用Unsafe来实现自定义锁
    rabbitMQ实现推迟队列
    简单分布式锁的实现
    [原创]通过切面与分布式锁实现合并相同请求
  • 原文地址:https://www.cnblogs.com/wangximing/p/11192021.html
Copyright © 2011-2022 走看看