宿州网站开发公司,怎么推广自己的qq群,切实加强门户网站建设,263企业邮箱登录入口手机版这里写目录标题 错题本注意数据的耦合性对于无解情况的处理思路一组数据以0为结束标记#xff0c;如何输入到数组中#xff0c;并计数多个数据进行比较链表删除重复元素的启发循环体里谨慎写类型定义并初始化#xff08;一般写上就是错#xff09;队列中读取队尾元素数组当… 这里写目录标题 错题本注意数据的耦合性对于无解情况的处理思路一组数据以0为结束标记如何输入到数组中并计数多个数据进行比较链表删除重复元素的启发循环体里谨慎写类型定义并初始化一般写上就是错队列中读取队尾元素数组当做形参传递到函数里之后 就不可以进行数组元素的计算了当数组定义好了长度 如何求有效长度读取字符串越界位置返回值是一个容器持续删除string中某个字符 蓝桥真题遇到简单的组合数问题取模和除法、补充前导0 错题本
注意数据的耦合性 bfs求连通块的时候在进入四个方向搜索时要注意每次得到的新的xy一定不要与原x y 有任何的瓜葛要保证每次for循环都是在旧的x y的基础上进行修改的如果我们将x1 y1改为了x y那么每次x y都会被更新这显然是错的
对于无解情况的处理思路 利用反证法如上代码可以在有解的时候将全局变量res改为true这样的话只要有一组有解那么就不会输出无解反之没有任何解的情况下就会无解。 这里也可以注意到全局变量使用时不仅要关注其自动初始化为0还要关注他的变量是全局的他会累计值所以何时该用全局何时该用局部要进行衡量 同时也要注意对于一些比例的验证最好用乘法实际上任何除法的计算如果可以转化为乘法那是最好的
一组数据以0为结束标记如何输入到数组中并计数 输入时先将nums[0]输入然后进行循环循环时定义ij 两个循环变量 i初始化为0j初始化为1之后i j都要递增结束条件是nums[i]!0这样可以确保结束条件的生效不然如果只用 i 的话nums[i]还没被赋值就拿去判断是否等于0了。 总结循环外输入nums[0], i 始终比 j 小一结束条件用i判断输入语句用 j
多个数据进行比较 可以先设一个很大的数超过本题数据范围的数 在一个循环里将每个数据依次在一次循环中得出每次循环得到的结果是x将x与ans取min赋值给ans这样多次循环之后就是多个数据的最小值
链表删除重复元素的启发 图中 1、对于链表 可能系统会传入空指针进去 所以要考虑到 要加上空指针判断 2、对于while条件的设置 因为p不可以指到空指针 不然出错 所以不可以设置为pNULL 但是p必须最终指向最后一个结点来结束循环 所以可以设置为p-nextNULL; 3、因为执行完if中的内容之后 还要再比较一遍处理过后的当前结点的情况 所以 在if为真时 不设置p后移 而是在else里设置p后移 这样既可以再比较一遍 还符合运行逻辑
循环体里谨慎写类型定义并初始化一般写上就是错 上图中 在循环里 不要定义int i 0 这样的话每次循环都会使其为0 低级错误 只能在for循环里设置为int i 0
队列中读取队尾元素 数组当做形参传递到函数里之后 就不可以进行数组元素的计算了 sizeofnums/sizeofnums【0】 可以算出数组的元素个数 但是仅限于在定义数组的函数内才可以 注意sizeof的办法不能求已经定义好的数组的长度 因为这样的话 sizeof数组就是你定义的长度的字节数
如果将数组作为形参 传递到函数里 那么就不可以用这种方法 因为一旦当做形参传递数组 数组就变成了指针 就不会传入整个数组的大小 所以不可以在函数里求函数外的数组的元素个数 只能在函数外求出 然后当做形参传递进去
当数组定义好了长度 如何求有效长度
利用for循环 计数器 求长度 终止条件跳出循环条件 可以看到定义好了数组之后 不赋值的地方 就是乱码 以此为终止条件
读取字符串越界位置 越界位置为NULL
返回值是一个容器 当返回值是一个容器时 就要返回一个同类型的容器 可以定义一个函数 在函数里进行操作 之后的输出替换成向容器里面加入元素即可
ps 适用于某个算法在递归输出 而没有返回值时 可能会遇到这种情况
持续删除string中某个字符 首先拿到第一个pos A.find(目标字符) 之后while循环中如果pos不等于尾后迭代器(这里是string::npos)就一直循环 A.erase(pos, 1); 之后在循环内更新pos A.find(还是那个目标字符)
蓝桥真题
遇到简单的组合数问题 遇到如上图所示cab中已经给出了a或者b的值且a或者b的值很小那么可以直接把组合数的数学公式推出来计算即可了不用局限于写上模版然后代数。
取模和除法、补充前导0 %a % b 1、a除以b之后的余数 2、a 减去 b的整数倍 之后在b范围内的数 3、a % b 0a 是 b 的整倍数 4、a % 10小数点左移一维取右边的数
/ a / b 1、a除以b的结果int数据会缺失精度 2、a中最多有多少个b 3、a / 10小数点左移一位取左边的数
考试的时候细细琢磨 之所以hh、mm、ss后面要%24、60、60是因为h / 60 * 1000得到的是一天有多少分钟而不是一小时的多少分钟所以要%一小时单位下mm的范围即%60ss也要%一分钟下他的范围%60
同时该题解还提供了一种补充前导0的办法。printf(“%02d”,x)表示输出两位数字如果x是个位就在前面补0如果x是两位数则忽略前面那个0
且如果题目没有强调那么年份和月份都是按照普通情况处理