编程之旅——编程常出现的错误(警醒)

Posted fanxinglanyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编程之旅——编程常出现的错误(警醒)相关的知识,希望对你有一定的参考价值。

1,只定义了需要输入的整数n,却没有输入它(scanf("%d", &n));

2,使用一个数组时,它的原值已经在数值处理中被更改了,不是原值(此时需要设置一个临时变量temp,把数组值付给它,对它进行操作);

3,输出固定字符时,打错了,例如题目需要输出None,却输成了NOne;

4,出现段错误,是访问了非法的内存,一般情况是数组长度设置过小或是访问时数组越界;

5,用fgets输入字符串时,使用strlen计算长度,一定要减1;

6,括号不对称(error: C++ requires a type specifier for all declarations);

7,scanf()整数后,使用fgets,一定要先使用getchar()吸收换行符;

解题详解:

1,最

a,(搜索:深【递归】、宽【队列】(穷举所有的可能性)——(变化的次数)(状态转移的次数、枚举【循环】)穷举

b,动态规划

c,贪心

d,闭式(公式)

2,解题金字塔

阅读——思维:解题方向——工具和技巧——效率优化——细节与调试

3,算法题五种解法

a,举例法:具体例子,到一般规则(公式符号化)

b,模式匹配法:相似问题,到现有问题(经典的变体)

c,简单推广法:从简化版,到复杂版(修改约束条件)

d,简化构造法:从n=1开始(递推或递归)

e,数据结构头脑风暴:链表、数组、二叉树、堆、栈、队列

前缀和?树状数组?区间树?

4,模版需要记住的

1)快速幂取模运算

2)二分法(查找有序序列给定数x(对于下标从0开始,【left,right】——【0,n - 1】);

⚠️:left <= right

查找有序序列第一个满足某条件元素的位置(初值必须覆盖所有值【对于下标从0开始的数组,【left,right】——【0,n】);

⚠️:left < right(查找有序序列第一个满足条件的元素的位置(初值必须覆盖所有值,left比最小值小一)【left,right】——【-1,n】),

⚠️:left + 1 < right

3)two pointers

⚠️:进入函数前要让a对m取模

5,特殊写法

1)eps = 1e-5等价于10^-5

const double PI = acos(-1.0)

int INF = 0x7fffffff       是int上限

6,算法优化

1)dfs对于重复子问题的求解,可以使用动规数组或者记忆型递归

2)


以上是关于编程之旅——编程常出现的错误(警醒)的主要内容,如果未能解决你的问题,请参考以下文章

我的C/C++语言学习进阶之旅C++编程常出现错误:Undefined Reference的一些常见情况分析

父与子的编程之旅第十章学习

我的Android进阶之旅NDK开发引入第三方so库(比如assimp和opencv库)常出现的几个问题:missing and no known rule to make it等

我的Android进阶之旅NDK开发引入第三方so库(比如assimp和opencv库)常出现的几个问题:missing and no known rule to make it等

Day606.SpringAOP常编程错误案例① -Spring编程常见错误

编程感悟