- 博客(30)
- 收藏
- 关注
原创 哈希表三种数据结构在leetcode中的使用情况分析
本文总结了哈希表在不同场景下的应用方法。对于固定范围的小写字母问题(如有效的字母异位词),使用数组作为哈希表更高效;当数值范围不定且需去重时(如数组交集),采用Set更适合;需要同时记录值和索引的情况(如两数之和),则使用Map更合适。此外,文章对比了哈希表和双指针的适用场景,指出对于三数之和等需要去重的复杂问题,双指针比哈希表更具优势。通过多个LeetCode案例,展示了如何根据数据特征选择最优的哈希表实现方式。
2025-06-13 17:09:06
906
原创 LeetCode-链表操作题目
摘要:本文介绍了链表相关算法题的解题思路,包括203移除链表元素、707设计链表、206反转链表、24两两交换链表节点、19删除倒数第N个节点和142环形链表检测。主要使用了虚拟头指针统一操作、双指针法来解决问题。对于环形链表检测,通过快慢指针相遇后推导数学公式来确定环的入口位置。这些题目涵盖了链表的基本操作和常见算法思想,如指针移动、节点交换和环检测等,是掌握链表操作的重要练习。
2025-06-02 03:16:13
501
原创 LeetCode-数组技巧题目
本文总结了数组相关算法题的解题技巧,主要包括四种经典方法: 二分查找:维护区间不变量,注意边界处理,使用左闭右闭区间避免溢出。 快慢指针:用于移除元素,快指针遍历数组,慢指针记录新数组位置。 滑动窗口:通过动态调整窗口边界寻找最优解,注意左右指针的移动条件。 模拟行为:处理复杂问题(如螺旋矩阵)时保持循环不变量,统一操作规则。 此外还讲解了双指针法和前缀和的应用,包括有序数组平方排序、区间和计算等典型问题。解题关键包括: 理解指针移动条件 正确处理边界 选择合适的数据结构 注意时间复杂度优化
2025-05-28 11:05:09
688
原创 LeetCode-螺旋矩阵
本文总结了螺旋矩阵类问题的通用解法,包括59题、54题和LCR146题。核心思想是通过控制循环不变量,使用四个边界(top,right,bottom,left)来规范遍历路径。每次循环沿四边按顺序遍历元素,循环结束后边界向中心收缩,直到完成所有元素的遍历。特别注意处理矩阵行列为奇数时中心元素的特殊情况和空数组的边界条件。解法保持一致的遍历规则,确保不重复不遗漏地访问每个元素。 (字数:149字)
2025-05-28 09:00:00
513
原创 LeetCode-滑动窗口刷题总结
【滑动窗口算法精要】本文通过三道典型例题(209、904、76)详解滑动窗口技巧:209题求最小子数组长度,使用双指针动态调整窗口边界,通过Math.min更新结果;904题水果成篮问题,利用哈希表统计种类数,Math.max求最大窗口;76题最小覆盖子串,通过双哈希表统计字符需求,动态调整窗口并记录最优解位置。核心在于:1)单次遍历终点指针;2)条件触发时调整起点指针;3)用max/min函数持续更新极值。难点在于确定窗口收缩条件和数据结构选择(如哈希表)。算法通过O(n)时间复杂度高效解决问题,适用于子
2025-05-26 02:27:12
764
原创 LeetCode数组-移除元素
数组在内存中是连续存放数据的,如果数组为【1,2,3,4,5】,移除元素3,后面所有的元素都会往前移动一位向前覆盖,变为【1,2,4,5,5】,一些编程语言会将最后一个5不输出,但其实内存空间中这个数组还是有五个元素。库函数如果能一步解决Leetcode的题目的话,建议不要使用,如果作为一系列代码中的一部分使用,且明白内部逻辑,再使用。.题目的要求:两个for循环,外循环遍历数组移除元素,内循环更新数组完成后面元素的覆盖核心思想移除元素=发现等于val值的数组元素,将后续的元素覆盖到前面所以是两个操作
2025-05-21 15:35:03
927
原创 【Java进阶学习 第十篇】递归和异常
Java中递归的思想介绍,案例介绍;Java中异常的体系和处理流程,两种处理异常的方式,以及如何建立自定义异常
2025-03-30 09:34:38
916
原创 【Java进阶学习 第九篇】常用API(Array、冒泡选择排序、二分查找、正则表达式)
数组Array常用方法,冒泡和选择排序,二分查找,正则表达式的用例
2025-03-19 11:04:46
666
原创 【Java进阶学习 第六篇】代码块、内部类与Lambda表达式
Java中的代码块;静态代码块对于复杂对象初始化的作用;三种内部类;对于函数话接口如何使用匿名内部类,如何使用Lambda表达式减少代码冗余
2025-02-28 12:24:06
1026
原创 【Java进阶学习 第三篇】Java中的抽象和接口
抽象abstract:抽象类和抽象方法的知识点总结,接口interface和实现implements的知识点总结;接口和类之间的关系总结;抽象类和接口之间的区别总结
2025-02-21 16:10:32
797
原创 【Java进阶学习 第一篇】Java中的继承
继承的知识点,方法重写与方法重载的区别,super关键字,成员变量、成员方法和构造方法在继承中的访问特点
2025-02-19 11:56:38
1306
原创 Java中的集合ArrayList知识点总结+三种练习案例
Java中的集合ArrayList知识点详解,构造方法和常用成员方法总结,三种练习案例
2025-02-10 23:11:45
699
原创 Java中StringBulider运行效率为什么比String更快?String、StringBulider知识点详解(黑马Java基础笔记)
Java中String字符串类的特点,对象的构造方法,String的常用方法;StringBuilder的构造方法和常用方法,StringBuilder为什么比String字符串快。
2025-02-10 00:59:45
1165
原创 Java面向对象基础篇!类+对象+封装+JavaBean(黑马Java笔记)
OO(Object-Oriented)面向对象基础篇!从内存图入手,介绍了类和对象,介绍了成员变量、成员方法、构造方法、以及封装的思想。在封装中,了解了四种权限修饰符,了解了实体类JavaBean的概念和构造方法快捷键与插件。最终用一个综合案例串联知识点!
2025-02-06 00:19:52
623
原创 Java的六个基础案例-黑马Java基础Day6笔记
通过七个java的基础案例,串联前面的数据类型转换、数组、输入、循环、判断、随机数和指针的基础概念
2025-02-02 23:30:40
715
原创 (Java中的数组和二维数组知识点总结)黑马Java基础Day5笔记
数组与二维数组的静态动态初始化,数组遍历,各自的区别以及应用场景,两者的内存图组成是什么样子的,什么是方法区,什么是栈空间,什么是堆空间,从内存进一步地了解java代码!
2025-01-22 15:14:59
723
原创 黑马Java基础 Day4(流程控制语句、循环语句)
介绍了java中for和switch两种分支语句,for while do-while三种循环语句,跳转控制语句break和continue
2025-01-17 04:43:10
696
原创 黑马程序员Java-基础语法day3笔记(package、运算符、方法函数)
黑马程序员java基础课程day3笔记:包含了package、各类运算符、方法函数的定义、方法重载等内容
2024-09-30 13:34:00
672
原创 黑马程序员Java-基础语法day2笔记(注释、字面量、变量、标识符、Debug、数据类型、进制、Java常量优化机制)
黑马程序员java基础课程day2笔记:包含了注释、字面量、变量、标识符、Debug、数据类型、进制、Java常量优化机制等内容
2024-09-11 17:19:35
870
1
原创 Mamba环境配置踩坑总结,基于Windows服务器1080ti显卡
基于服务器1080ti显卡,windows环境实现Mamba环境的配置,遇到的踩坑错误都在本文中给予了详细的解决方法。
2024-09-10 02:12:34
988
原创 多分类图像分类指标评估代码(完美版)
多分类图像分类!通俗易懂地介绍了TN、TP等定义,给出了六个图像分类常用指标的精准公式及定义:ACC、Precision、Recall、F1 Score、TOP1、TOP5,提供了完整版从模型验证到建立表格的代码,注释完整,希望能够帮到大家。
2024-08-30 12:52:35
951
2
原创 【论文略读】(MLLA)清华大学--Demystify Mamba in Vision: A Linear AttentionPerspective
引入Baseline Mamba,指明Mamba在处理各种高分辨率图像的视觉任务有着很好的效率。文章发现了强大的Mamba和线性注意力Transformer( linear attention Transformer)非常相似,然后就分析了两者之间的异同。
2024-06-19 10:20:09
5884
7
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人