算法错题本
这里写目录标题
- 错题本
- 注意数据的耦合性
- 对于无解情况的处理思路
- 一组数据以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
且如果题目没有强调,那么年份和月份都是按照普通情况处理
相关文章:
算法错题本
这里写目录标题 错题本注意数据的耦合性对于无解情况的处理思路一组数据以0为结束标记,如何输入到数组中,并计数多个数据进行比较链表删除重复元素的启发循环体里谨慎写类型定义并初始化(一般写上就是错)队列中读取队尾元素数组当…...
绝地求生:爷青回!老版艾伦格回归?雨天雾天的艾伦格你还记得吗?
爷青回!老版艾伦格回归?雨天雾天的艾伦格你还记得吗? 嗨,我是闲游盒~ 早在很久前,就有许多玩家吐槽艾伦格越改越没那味了,没之前的真实感了等等.... ◆ PUBG官方发布了一条推文,其中就有类似老版…...
10秒钟用python接入讯飞星火API(保姆级)
正文: 科大讯飞是中国领先的人工智能公众公司,其讯飞星火API为开发者提供了丰富的接口和服务,以支持各种语音和语言技术的应用。 步骤一:注册账号并创建应用 首先,您需要访问科大讯飞开放平台官网,注册一个…...
认识什么是Webpack
目录 1. 认识Webpack 1.1. 什么是Webpack?(定义) 1.2. 使用Webpack 1.2.1. 需求 1.2.2. 步骤 1.3. 入口和出口默认值 1.3.1. 需求代码如下 2. 修改Webpack打包入口和出口 2.1. 步骤: 2.2. 注意 3. Webpack自动生成html文件 3.1.…...
vulhub打靶记录——healthcare
文章目录 主机发现端口扫描FTP—21search ProPFTd EXPFTP 匿名用户登录 web服务—80目录扫描search openemr exp登录openEMR 后台 提权总结 主机发现 使用nmap扫描局域网内存活的主机,命令如下: netdiscover -i eth0 -r 192.168.151.0/24192.168.151.1…...
css实现更改checkbox的样式;更改checkbox选中后的背景色;更改checkbox选中后的icon
<input class"check-input" type"checkbox"> .check-input {width: 16px;height: 16px;} /* 设置默认的checkbox样式 */input.check-input[type"checkbox"] {-webkit-appearance: none; /* 移除默认样式 */border: 1px solid #999;outl…...
绿联 安装Mysql数据库
绿联 安装Mysql数据库 1、镜像 mysql:5.7 数据库5.7.x系列。 mysql:8 数据库8.x.x系列,安装方式相同。 2、安装 2.1、拉取镜像 拉取5.7.x版本的镜像。 2.2、基础设置 重启策略:第三或第四项均可。 2.3、网络 桥接即可。 2.4、命令 在原有的“mys…...
PyQt ui2py 使用PowerShell将ui文件转为py文件并且将导入模块PyQt或PySide转换为qtpy模块开箱即用
前言 由于需要使用不同的qt环境(PySide,PyQt)所以写了这个脚本,使用找到的随便一个uic命令去转换ui文件,然后将导入模块换成qtpy这个通用库(支持pyside2-6,pyqt5-6),老版本的是Qt.py(支持pysid…...
javascript中的浅拷贝和深拷贝
浅拷贝:拷贝的是引用类型数据的第一层:数组或者对象:的地址 深拷贝:通过不断的递归进行拷贝 原理普及:在js中引用类型的变量储存的时候引用类型数据的地址,因此当地址被重新赋值新的对象的时候ÿ…...
vue 实现自定义分页打印 window.print
首先这里是我自定义了打印界面才实现的效果,如果不用自定义界面实现,应该是一样的吧。具体可能需要自己去试试看 我的需求是界面有两个表格,点击全部打印,我需要把第一表格在打印是第1页,第二个表格是第二页 如图&…...
基于 Erlang 的随机账户分配机制
当你在网上注册新账户时,平台如何为你生成一个独特的用户名或编号呢?这背后其实有一套精心设计的系统。本文将带你了解一种使用 Erlang 语言开发的随机账户分配系统,它既快速又可靠。 ## 随机分配的简单步骤 我们可以将这个过程想象成一个装…...
数码论坛系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)电子科技数码爱好者交流信息新闻畅聊讨论评价
本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读300套最新项目持续更新中..... 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含ja…...
时序预测 | Matlab实现CPO-LSTM【24年新算法】冠豪猪优化长短期记忆神经网络时间序列预测
时序预测 | Matlab实现CPO-LSTM【24年新算法】冠豪猪优化长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现CPO-LSTM【24年新算法】冠豪猪优化长短期记忆神经网络时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-LSTM【24年新算法】…...
探索设计模式的魅力:AI大模型如何赋能C/S模式,开创服务新纪元
🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 AI大模型如何赋能C/S模式,开创服务新纪元 数字化飞速发展的时代,AI大模型…...
2024年NAND价格市场继续上涨
TrendForce发布了最新的NAND闪存市场价格走势预测。根据其报告,在2024年第二季度,NAND闪存合同价格将进一步呈现两位数的增长,叠加前一季度的增长。不过,客户端SSD的价格涨幅预计在第二季度将不超过15%,相比于2024年第…...
分布式算法 - ZAB算法
ZAB算法是用于实现分布式系统中的原子广播的核心算法,它被广泛应用于ZooKeeper分布式协调服务中。 ZAB算法由两个主要阶段组成:崩溃恢复阶段和消息广播阶段。 在崩溃恢复阶段,当一个ZooKeeper节点启动或者领导者节点崩溃重启时,…...
Java设计之道:色即是空,空即是色
0.引子 我们的这个世界上,存在这么一种东西: 第一:它不占据任何3D之体积,即它没有Volume第二:它也不占据任何2D之面积,即它没有Area第三:它也不占据任何1D之长度,即它没有Length 总…...
深度学习:基于PyTorch的模型解释工具Captum
深度学习:基于PyTorch的模型解释工具Captum 引言简介示例安装解释模型的预测解释文本模型情绪分析问答 解释视觉模型特征分析特征消融鲁棒性 解释多模态模型 引言 当我们训练神经网络模型时,我们通常只关注模型的整体性能,例如准确率或损失函…...
公司官网怎么才会被百度收录
在互联网时代,公司官网是企业展示自身形象、产品与服务的重要窗口。然而,即使拥有精美的官网,如果不被搜索引擎收录,就无法被用户发现。本文将介绍公司官网如何被百度收录的一些方法和步骤。 1. 创建和提交网站地图 创建网站地图…...
机器学习模型——SVM(支持向量机)
基本概念: Support Vector Machine (支持向量机): 支持向量:支持或支撑平面上把两类类别划分开来的超平面的向量点。 机:一个算法 SVM是基于统计学习理论的一种机器学习方法。简单地说,就是将数据单元…...
服务器CPU使用过高的原因
大多使用服务器的站长都会碰见这样的问题,在长时间使用后,系统越来越慢,甚至出现卡死或强制重启的情况。打开后台 才发现,CPU使用率已经快要到达90%。那么,我告诉你哪些因素会导致服务器CPU高使用率,从而严…...
基于tensorflow和kereas的孪生网络推理图片相似性
一、环境搭建 基础环境:cuda 11.2 python3.8.13 linux ubuntu18.04 pip install tensorflow-gpu2.11.0 验证:# 查看tensorflow版本 import tensorflow as tf tf.__version__ # 是否能够成功启动GPU from tensorflow.python.client import device_lib pr…...
day4|gin的中间件和路由分组
中间件其实是一个方法, 在.use就可以调用中间件函数 r : gin.Default()v1 : r.Group("v1")//v1 : r.Group("v1").Use()v1.GET("test", func(c *gin.Context) {fmt.Println("get into the test")c.JSON(200, gin.H{"…...
nodejs的express负载均衡
我们知道nodejs是单线程的,在特定场合是不能利用CPU多核的优势的。一般有两种方式来解决,一种是利用nodejs的cluster模块创建多个子进程来处理请求以充分利用cpu的多核,还有一种是nodejs运行多个服务分别监听在不同的port,利用nginx创建一个u…...
计算机网络-HTTP相关知识-RSA和ECDHE及优化
HTTPS建立基本流程 客户端向服务器索要并验证服务器的公钥。通过密钥交换算法(如RSA或ECDHE)协商会话秘钥,这个过程被称为“握手”。双方采用会话秘钥进行加密通信。 RSA流程 RSA流程包括四次握手: 第一次握手:客户…...
axios 封装 http 请求详解
前言 Axios 是一个基于 Promise 的 HTTP 库,它的概念及使用方法本文不过多赘述,请参考:axios传送门 本文重点讲述下在项目中是如何利用 axios 封装 http 请求。 一、预设全局变量 在 /const/preset.js 中配置预先设置一些全局变量 window.…...
牛客2024年愚人节比赛(A-K)
比赛链接 毕竟是娱乐场,放平心态打吧。。。 只有A一个考了数学期望,其他的基本都是acmer特有的脑筋急转弯,看个乐呵即可。 A 我是欧皇,赚到盆满钵满! 思路: 我们有 p 1 p_1 p1 的概率直接拿到一件实…...
loadbalancer 引入与使用
在消费中pom中引入 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> 请求调用加 LoadBalanced 注解 进行服务调用 默认负载均衡是轮训模式 想要切换…...
Yolov5封装detect.py面向对象
主要目标是适应摄像头rtsp流的检测 如果是普通文件夹或者图片,run中的while True去掉即可。 web_client是根据需求创建的客户端,将检测到的数据打包发送给服务器 # YOLOv5 🚀 by Ultralytics, GPL-3.0 license """ Run inf…...
入门级深度学习主机组装过程
一 配置 先附上电脑配置图,如下: 利用公司的办公电脑对配置进行升级改造完成。除了显卡和电源,其他硬件都是公司电脑原装。 二 显卡 有钱直接上 RTX4090,也不能复用公司的电脑,其他配置跟不上。 进行深度学习&…...
做外贸哪个网站可以接单/网址收录平台
1、下载bootstrap https://getbootstrap.com/docs/4.3/getting-started/download/ 2、在项目目录下创建static文件夹,将下载的bootstrap解压到该static下 3、新建html,layout.html,url_for引用bootstrap.css 这里的block为定义模块 <!DOCTYPE html…...
微信端微网站怎么做/seo网站管理
2.1 问题 沿用练习一,通过调整Nginx服务端配置,实现以下目标: 访问Web页面需要进行用户认证 用户名为:tom,密码为:1234562.2 方案 通过Nginx实现Web页面的认证,需要修改Nginx配置文件&#x…...
做电影网站 需要进那些群/怎么建立网站的步骤
数据库是大难题。 MySQLRedis (中文手册 命令参考)Mongodb (中文手册)nosql文档转载于:https://www.cnblogs.com/can-H/articles/7604421.html...
食品网站建设策划/谷歌三件套一键安装
当我进行Python编程时,我总是使用制表符进行缩进。 但后来我在SO上遇到了一个问题,有人指出大多数Python程序员使用空格而不是制表符来最小化编辑器到编辑器的错误。这有什么不同? 还有其他原因可以使用空格而不是Python的制表符吗࿱…...
哈尔滨网站制作公司/杭州网站设计公司
百度搜索的时候 在搜索的关键字后面加上 [ -CSDN ],就过滤掉了CSDN的数据了...
修改wordpress菜单/360推广官网
环形结构上的动态规划问题,是一种特殊的区间动态规划问题。由于存在“环形后效性”,所以不满足动态规划算法的“无后效性”约束条件。故常将环形结构上的动态规划问题,通过“断环为链”策略转化为线性动态规划问题求解。所谓“无后效性”&…...