当前位置: 首页 > news >正文

非科班菜鸡算法学习记录 | 代码随想录算法训练营完结!

这俩月终于结束了233333,之后就是反复复习和背八股了吧,然后整整项目春招再投投投,感觉大部分题都有思路了但是做过的题也会没思路,还是要复习

总结

数组:

        双指针用的很多,一般一个指向遍历位置,另一个指向插入位置

链表:

        也是双指针比较多,注意可以创造一个dummy节点指向头节点,从dummy开始遍历会比较方便;环形链表位置是快慢指针,快走2慢走1,它们肯定会在慢没走完环的一圈时相遇,此时把慢指针放在头节点,两个指针同步走,相等的位置即环入口

哈希:

          unordered_map; unordered_set;解决字母异位词,几数之和等;去重常用set;map一般key保存值,value保存下标

栈和队列:

        有效的括号,栈和队列互相实现

二叉树:

        两种,迭代(层序)和递归(深度);迭代时是用一个队列保存节点,记录每层节点数size,当pop节点时,size--(到0时该层结束),并把他的左右孩子进入队列;

        递归:

  1. 确定递归函数的参数和返回值: 确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么进而确定递归函数的返回类型。

  2. 确定终止条件: 写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。

  3. 确定单层递归的逻辑: 确定每一层递归需要处理的信息。在这里也就会重复调用自己来实现递归的过程。

回溯:

       三要素

        回溯函数模板返回值以及参数

        回溯函数终止条件

        回溯搜索的遍历过程

void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果}
}

贪心:

       没有套路,大概就是局部最优可以推到全局最优

动规:

  1. 确定dp数组(dp table)以及下标的含义

  2. 确定递推公式

  3. dp数组如何初始化

  4. 确定遍历顺序

  5. 举例推导dp数组

最重要的还是01背包和完全背包,是指有物品i,重量为weight[i],价值为value[i],装满这个背包所能得到的最大价值;dp[i][j]为取【0,i】物品时[重量为j]的最大价值;

       01: dp[i][j] =max( dp[i-1][j]  , dp[i-1][j-weight[i]] + value[i] ) // 不取i但重量为j的价值和取i重量为j的最大值

压成一维数组
                dp[j] =max( [j]  , dp[j-weight[i]] + value[i] )// 每一层的dp是由上一层的dp来的,所以只需要一维就可以了,注意第二层for要从后往前遍历,保证物品i只被放入一次!

for(int i = 0; i < weight.size(); i++) { // 遍历物品for(int j = bagWeight; j >= weight[i]; j--) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}
}

  完全背包:

// 先遍历物品,再遍历背包
for(int i = 0; i < weight.size(); i++) { // 遍历物品for(int j = weight[i]; j <= bagWeight ; j++) { // 遍历背包容量dp[j] = max(dp[j], dp[j - weight[i]] + value[i]);}
}

单调栈:

主要是用来找左右第一个比自己大或者比自己小的元素,还不熟练具体看之前每日总结

最后!感谢卡哥!也感谢能坚持下来的自己,至少秋招面对昨天还能挣扎一下不至于直接寄!

轻舟已过万重山!!!

相关文章:

非科班菜鸡算法学习记录 | 代码随想录算法训练营完结!

这俩月终于结束了233333&#xff0c;之后就是反复复习和背八股了吧&#xff0c;然后整整项目春招再投投投&#xff0c;感觉大部分题都有思路了但是做过的题也会没思路&#xff0c;还是要复习 总结 数组&#xff1a; 双指针用的很多&#xff0c;一般一个指向遍历位置&#xff0…...

C语言实现三字棋

实现以下&#xff1a; 1游戏不退出&#xff0c;继续玩下一把&#xff08;循环&#xff09; 2应用多文件的形式完成 test.c. --测试游戏 game.c -游戏函数的实现 game.h -游戏函数的声明 (2)游戏再走的过程中要进行数据的存储&#xff0c;可以使用3*3的二维数组 char bor…...

【LeetCode】35.复杂链表的复制

题目 请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中&#xff0c;每个节点除了有一个 next 指针指向下一个节点&#xff0c;还有一个 random 指针指向链表中的任意节点或者 null。 示例 1&#xff1a; 输入&#xff1a;head [[7,null],[13,0],[11,4]…...

代码大全阅读随笔(五)

数据初始化要点&#xff1a; 数据初始化过程很容易出错&#xff0c;所以请使用本章介绍的方法&#xff0c;来初始化数据&#xff0c;从而避免由于非预期的初始化值而造成的错误。 最小化变量作用域。 使用相同的变量的语句尽可能的集中在一起。 早期绑定会减少灵活性&#xff0…...

No1.详解【2023年全国大学生数学建模竞赛】C题——蔬菜类商品的自动定价与补货决策(代码 + 详细输出 + 数据集代码 下载)

时间告诉你什么叫衰老,回忆告诉你什么叫幼稚。不要总在过去的回忆里纠缠,昨天的太阳,晒不干今天的衣裳。 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿 🌟[3] 2022年度博客…...

有什么好用的电容笔?apple pencil替代品推荐

近年来&#xff0c;电容笔越来越成为人们日常生活中常见的数码产品之一。电容笔的便捷性得到了消费者的认可。它逐渐取代无纸化书写。那么到底电容笔哪个品牌好呢&#xff0c;电容笔哪一款最好用呢&#xff0c;今天小编给大家总结几款市面好用的电容笔&#xff0c;让我们一起来…...

什么是回调函数?写出一个示例?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 回调函数⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前…...

深度学习在医疗保健领域的应用:从图像识别到疾病预测

文章目录 深度学习在医学影像识别中的应用1. 癌症检测2. 病理学图像分析3. 医学图像分割 深度学习在疾病预测中的应用1. 疾病风险预测2. 疾病诊断辅助3. 药物研发 深度学习在个性化治疗中的应用1. 基因组学分析2. 临床数据集成 深度学习在医疗保健中的挑战和未来数据隐私和安全…...

SpringBoot实现自定义environment中的value加密

environment中的value为什么要加密&#xff1f; 未经过加密的配置文件&#xff0c;密码均是采用明文密码&#xff0c;很容易导致信息泄露。 SpringBoot environment中的value加密代码如下 package com.xxx.core.encryption;import com.google.common.collect.Maps; import lomb…...

celery的用法--任务调度

在Celery中&#xff0c;任务&#xff08;Task&#xff09;是执行特定操作的基本单元。任务可以异步执行&#xff0c;可以带有参数&#xff0c;可以返回结果&#xff0c;可以链式调用&#xff0c;还可以设置任务优先级、超时等属性。 1.定义任务&#xff1a; 使用app.task装饰器…...

MyBatis-Plus学习笔记总结

一、查询 构造器分为QueryWrapper和LambdaQueryWrapper 创建实体类User package com.system.mybatisplus.model;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.…...

How Language Model Hallucinations Can Snowball

本文是LLM系列文章&#xff0c;针对《How Language Model Hallucinations Can Snowball》的翻译。 语言模型幻觉是如何产生雪球的 摘要1 引言2 为什么我们期待幻觉像滚雪球一样越滚越大&#xff1f;3 实验4 我们能防止雪球幻觉吗&#xff1f;5 相关工作6 结论局限性 摘要 在实…...

autojs修改顶部标题栏颜色

顶部标题栏的名字是statusBarColor 不是toolbar。难怪我搜索半天搜不到 修改之后变成这样了 代码如下&#xff1a; "ui"; importClass(android.view.View); importClass(android.graphics.Color); ui.statusBarColor(Color.parseColor("#ffffff")); ui.…...

arppy gis 读取text 并批量添加字段 arcpy.AddField_management

arppy gis 读取text 并批量添加字段 arcpy.AddField_management 例&#xff1a;给“省级行政区域”添加“A、B、C、D” 4个字段。 &#xff08;1&#xff09;用Excel制作出字段及其描述表&#xff0c;定义字段结构&#xff1b; &#xff08;2&#xff09;复制除标题行以为的内…...

Pandas中at、iat函数详解

前言 嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 at 函数&#xff1a;通过行名和列名来取值&#xff08;取行名为a, 列名为A的值&#xff09; iat 函数&#xff1a;通过行号和列号来取值&#xff08;取第1行&#xff0c;第1列的值&#xff09; 本文给出at、iat常见的…...

【Spring Boot】JPA — JPA入门

JPA简介 1. JPA是什么 JPA是Sun官方提出的Java持久化规范&#xff0c;它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据&#xff0c;通过注解或者XML描述“对象-关系表”之间的映射关系&#xff0c;并将实体对象持久化到数据库中&#xff0c;极大地简…...

c#反射(Reflection)

当我们在C#中使用反射时&#xff0c;可以动态地获取和操作程序集、类型和成员。下面是一个简单的C#反射示例&#xff0c;展示了如何使用反射来调用一个类的方法&#xff1a; using System; using System.Reflection;public class MyClass {public void MyMethod(){Console.Wri…...

Lua 元表和元方法

一、元表 元表可以修改一个值在面对一个未知操作时的行为&#xff0c;Lua 中使用 table 作为元表的承载。 元表只能给出预先定义的操作集合的行为&#xff0c;比类会更加受限制&#xff0c;不支持继承。 Lua 每一个值都可以有元表 &#xff1a; 表和用户数据类型都具有各自…...

【Git】01-Git基础

文章目录 Git基础1. 简述1.1 版本管理演变1.2 Git的特点 2. Git安装2.1 安装文档2.1 配置user信息 3. 创建仓库3.1 场景3.2 暂存区和工作区 4. 重命名5. 常用git log版本历史5.1 查看当前分支日志5.2 简洁查看日志5.3 查看最近指定条数的日志 6. 通过图形界面工具查看版本7. 探…...

【Vue2.0源码学习】生命周期篇-初始化阶段(initState)

文章目录 1. 前言2. initState函数分析3. 初始化props3.1 规范化数据3.2 initProps函数分析3.3 validateProp函数分析3.4 getPropDefaultValue函数分析3.5 assertProp函数分析 4. 初始化methods5. 初始化data6. 初始化computed6.1 回顾用法6.2 initComputed函数分析6.3 defineC…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候&#xff0c;遇到了一些问题&#xff0c;记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...