算法错题本

这里写目录标题

  • 错题本
    • 注意数据的耦合性
    • 对于无解情况的处理思路
    • 一组数据以0为结束标记,如何输入到数组中,并计数
    • 多个数据进行比较
    • 链表删除重复元素的启发
    • 循环体里谨慎写类型定义并初始化(一般写上就是错)
    • 队列中读取队尾元素
    • 数组当做形参传递到函数里之后 就不可以进行数组元素的计算了
    • 当数组定义好了长度 如何求有效长度
    • 读取字符串越界位置
    • 返回值是一个容器
    • 持续删除string中某个字符
  • 蓝桥真题
    • 遇到简单的组合数问题
    • 取模和除法、补充前导0

错题本

注意数据的耦合性

在这里插入图片描述
bfs求连通块的时候,在进入四个方向搜索时,要注意,每次得到的新的x,y,一定不要与原x y 有任何的瓜葛,要保证每次for循环都是在旧的x y的基础上进行修改的,如果我们将x1 y1改为了x y,那么每次x y都会被更新,这显然是错的

对于无解情况的处理思路

在这里插入图片描述
利用反证法:如上代码,可以在有解的时候,将全局变量res,改为true,这样的话,只要有一组有解,那么就不会输出无解,反之,没有任何解的情况下,就会无解。
这里也可以注意到,全局变量使用时,不仅要关注其自动初始化为0,还要关注,他的变量是全局的,他会累计值,所以,何时该用全局,何时该用局部,要进行衡量
同时也要注意,对于一些比例的验证,最好用乘法,实际上,任何除法的计算,如果可以转化为乘法,那是最好的

一组数据以0为结束标记,如何输入到数组中,并计数

在这里插入图片描述
输入时,先将nums[0]输入,然后进行循环,循环时,定义ij 两个循环变量 i初始化为0,j初始化为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不可以指到空指针 不然出错 所以不可以设置为p!=NULL 但是p必须最终指向最后一个结点来结束循环 所以可以设置为p->next!=NULL;
3、因为执行完if中的内容之后 还要再比较一遍处理过后的当前结点的情况 所以 在if为真时 不设置p后移
而是在else里设置p后移 这样既可以再比较一遍 还符合运行逻辑

循环体里谨慎写类型定义并初始化(一般写上就是错)

在这里插入图片描述
上图中 在循环里 不要定义int i = 0 ;
这样的话每次循环都会使其为0;
低级错误 只能在for循环里设置为int i= 0;

队列中读取队尾元素

在这里插入图片描述

数组当做形参传递到函数里之后 就不可以进行数组元素的计算了

在这里插入图片描述
sizeof(nums)/sizeof(nums【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 == 0,a 是 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的范围,即%60,ss也要%一分钟下他的范围,%60

同时,该题解还提供了一种补充前导0的办法。printf(“%02d”,x)表示输出两位数字,如果x是个位,就在前面补0,如果x是两位数,则忽略前面那个0

且如果题目没有强调,那么年份和月份都是按照普通情况处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/588004.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java项目:85 springboot智能物流管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本美发门店管理系统有管理员和用户两个角色。 用户功能有项目预定管理,产品购买管理,会员充值管理,余额查询管理。…

vue3鼠标向下滑动,导航条改变背景颜色和logo的封装

代码中使用了element-plus组件&#xff0c;需先安装 向下滑动前 向下滑动后&#xff08;改变了logo 字体 背景颜色&#xff09; <script lang"ts" setup> import router from /router; import { ArrowDown } from element-plus/icons-vue import { ref, …

VScode debug python(服务器)

方法一&#xff1a; 创建launch.json文件&#xff1a; launch.json文件地址&#xff1a; launch.json文件内容&#xff1a; {"version": "0.2.0", //指定了配置文件的版本"configurations": [{"name": "Python: Current File&…

基于kmeans的聚类微博舆情分析系统

第一章绪论 1.1研究背景 如今在我们的生活与生产的每个角落都可以见到数据与信息的身影。自从上十世纪八十年代的中后期开始&#xff0c;我们使用的互联网技术已经开始快速发展&#xff0c;近些年来云计算、大数据和物联网等与互联网有相领域的发展让互联网技术达到了史无前例…

159 Linux C++ 通讯架构实战14,epoll 函数代码实战

ngx_epoll_init函数的调用 //&#xff08;3.2&#xff09;ngx_epoll_init函数的调用&#xff08;要在子进程中执行&#xff09; //四章&#xff0c;四节 project1.cpp&#xff1a;nginx中创建worker子进程&#xff1b; //nginx中创建worker子进程 //官方nginx ,一个…

免费图片转excel方案大全

随着信息技术的发展&#xff0c;我们经常会遇到需要将图片中的数据转换成Excel表格的情况。这种需求在数据分析、报表制作、信息整理等领域尤为常见。然而&#xff0c;许多人在面对这一任务时感到困惑&#xff0c;不知道如何进行。本文将为大家介绍几种免费的图片转Excel方案&a…

分享高质量嵌入式软件的开发技巧

大家好&#xff0c;今天给大家介绍分享高质量嵌入式软件的开发技巧&#xff0c;文章末尾附有分享大家一个资料包&#xff0c;差不多150多G。里面学习内容、面经、项目都比较新也比较全&#xff01;可进群免费领取。 高质量嵌入式软件的开发技巧涉及多个方面&#xff0c;从设计、…

Mybatis——一对一映射

一对一映射 预置条件 在某网络购物系统中&#xff0c;一个用户只能拥有一个购物车&#xff0c;用户与购物车的关系可以设计为一对一关系 数据库表结构&#xff08;唯一外键关联&#xff09; 创建两个实体类和映射接口 package org.example.demo;import lombok.Data;import …

Linux(05) Debian 系统修改主机名

查看主机名 方法1&#xff1a;hostname hostname 方法2&#xff1a;cat etc/hostname cat /etc/hostname 如果在创建Linux系统的时候忘记修改主机名&#xff0c;可以采用以下的方式来修改主机名称。 修改主机名 注意&#xff0c;在linux中下划线“_”可能是无效的字符&…

IDEA中连接SQLserver数据库(DataGrip相同连接)

IDEA中连接SQLserver数据库(DataGrip相同连接) 1. 打开IDEA-database组件 2. 新建SQL server连接 3. 填写信息进行连接 填写连接名称&#xff0c;连接主机IP&#xff0c;端口&#xff0c;默认端口1433&#xff0c;数据库用户名密码&#xff0c;默认数据库用户名是sa 第一次连接…

elment UI el-date-picker 月份组件选定后提交后台页面显示正常,提交后台字段变成时区格式

需求&#xff1a;要实现一个日期的月份选择<el-date-picker :typeformData.dateType :value-formatdateFormat v-modelformData.leaveFactoryDateplaceholder选择月份></el-date-picker>错误示例&#xff1a;将日期显示类型(type)dateType或将日期绑定值的格式(val…

Android Studio学习8——点击事件

在xml代码中绑定 在java代码中绑定 弹出一个toast 随机&#xff0c;数组