- 博客(25)
- 收藏
- 关注
原创 Java 开发环境配置和运行代码指南
数据类型: 表示一组数据的集合,以及基于该数据集合的一组合法操作。它不仅表示一组数据,还限制了这组数据能够执行的操作。公式: 数据类型 = 数据 + 操作举例int: 一种基本数据类型,表示一定范围内的整数,并支持加、减、乘、除等操作,但不支持求长度、求宽度等操作。String: 最常用的引用数据类型,表示字符串,可以进行字符串拼接()、求长度等操作,但不支持减法、乘法等操作。
2024-07-20 16:56:10 964
原创 LeetCode 278: 第一个错误的版本
你是产品经理,目前正在带领一个团队开发一个新产品。不幸的是,您的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。为了最小化 API 调用次数,可以使用二分查找算法来找到第一个错误的版本。二分查找的核心思想是通过不断缩小搜索范围来逼近第一个错误的版本。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。, n],你想找出导致之后所有版本出错的第一个错误的版本。假设 n = 5,并且 version = 4 是第一个错误的版本。
2024-08-01 17:34:22 456
原创 leetcode 540.有序数组中的单一元素
leetcode [540] 有序数组中的单一元素【转载】作者:宫水三叶链接:https://leetcode.cn/problems/single-element-in-a-sorted-array/solutions/1264496/gong-shui-san-xie-er-duan-xing-fen-xi-yu-17nv/来源:力扣(LeetCode)
2024-07-29 09:07:12 492
原创 leetcode 69. x 的平方根
可以使用二分查找法或牛顿迭代法来实现 LeetCode 问题。下面是使用二分查找法和牛顿迭代法的 C++ 实现。
2024-07-24 11:56:55 450 1
原创 二分查找代码详解
通过使用,你可以有效避免由于left和right的和超出int范围导致的溢出问题,确保二分查找在所有情况下都能正确执行。在数学上证明和得到的结果是相同的。两者之所以相等,归根结底在于它们的计算方式和中间步骤是相同的。
2024-07-24 09:16:09 956
原创 leetcode 455. 分发饼干
这段代码是为LeetCode问题提供的两种解决方案。问题要求分配饼干给孩子,使尽可能多的孩子满足胃口。每个孩子都有一个胃口值,每个饼干都有一个尺寸值,饼干只能分给胃口值小于等于饼干尺寸的孩子。
2024-07-23 10:15:57 534 1
原创 Java的集合框架(Collection Framework)中的Iterator接口详解
在Java中,将Iterator定义为接口是一种设计上的选择,目的是提供一个统一的迭代机制,使不同类型的集合都能以一致的方式进行遍历。以下是将Iterator以下是IteratorE next();将Iterator定义为接口的主要目的是提供一个统一、灵活且可扩展的迭代机制。通过这种方式,Java集合框架能够支持多种类型的集合,并且客户端代码能够以一致的方式使用这些集合。这种设计不仅简化了集合的使用,还提高了代码的可维护性和可扩展性。
2024-07-22 15:48:26 683
原创 leetcode 75.颜色分类
LeetCode第75题“颜色分类”要求对包含红色、白色和蓝色的数组进行排序,红色、白色和蓝色分别用0、1和2表示。这个问题可以通过荷兰国旗问题的解决方案来实现,该算法的时间复杂度为O(N),空间复杂度为O(1)。有一个简单的思路,这种方法虽然简单直观,但它不是题目要求的单次遍历解决方案。不过,对于理解问题和学习排序的基本概念非常有帮助。这种方法高效且简单,适用于大多数情况下需要对包含少数类别的数组进行分类排序的场景。
2024-07-22 09:30:39 660 1
原创 leetcode 633.平方数之和
1],因此在计算的过程中可能会发生 int 型溢出的情况,需要使用 long 型避免溢出。在枚举 a 的同时,使用 sqrt 函数找出 b。注意:本题 c 的取值范围在 [0,
2024-07-20 15:34:49 263
原创 leetcode 451.根据字符出现频率排序
这个方法的时间复杂度主要是O(N log N),其中N是字符串的长度。通过这种方式,可以高效地根据字符出现的频率对字符串进行排序。
2024-07-20 15:31:31 639 1
原创 LeetCode 347.前K个高频元素
这种方法的时间复杂度主要是O(N log K),其中N是数组的长度,K是要找的高频元素的数量。这种方法效率较高,适用于大多数情况。
2024-07-20 15:25:57 463 1
原创 leetcode 215.数组中的第K个最大元素
LeetCode第215题“数组中的第K个最大元素”要求找到未排序数组中第k个最大的元素。通常有几种常见的解决方案,包括使用排序、使用最小堆或快速选择算法。
2024-07-19 09:56:39 459
原创 对递归的深度理解及详细示例
关键在于理解递归的三个部分,并通过模拟、调试和练习来逐步掌握递归的思维方式。递归的基本思想是一个函数调用自身来解决一个更小的相同问题,直到达到基准情况(递归出口),在这个情况下不再进行递归调用。从简单的问题开始,比如计算阶乘、斐波那契数列、字符串反转,然后逐步解决复杂的问题,如二叉树遍历、动态规划问题。理解递归可以是一个挑战,但通过一些系统的方法,你可以逐步掌握它。通过逐步分析每个递归调用,你可以更好地理解递归的执行流程。通过反复练习各种递归问题,加深对递归的理解。用纸和笔手动模拟递归调用的过程。
2024-07-19 09:28:38 2005
原创 二叉树的遍历(代码实现+详细注释)
这段代码实现了二叉树的后序遍历(Post-order Traversal),但与传统的递归方法不同,这里使用了栈 (Stack) 数据结构来进行非递归的后序遍历。:对于每个节点,先递归遍历其左子树,然后递归遍历其右子树,最后处理当前节点(将其值添加到列表中)。通过递归调用和递归出口的配合,递归函数能够遍历整个二叉树并按照后序遍历的顺序处理每个节点。这个代码实现了二叉树的后序遍历,通过使用栈和头插法来确保节点值按后序遍历的顺序排列。的值插入到结果列表的开头,没有孩子。的值插入到结果列表的开头,没有孩子。
2024-07-19 09:26:43 1217
原创 leetcode 141.环形链表
以下是使用 C++ 实现 LeetCode 141 题目“环形链表”的两种方法:哈希表法和快慢指针法。这种方法使用两个指针,一个快指针和一个慢指针。如果链表中存在环,快指针最终会与慢指针相遇。这种方法使用一个集合来存储访问过的节点,如果某个节点已经存在于集合中,说明链表中存在环。这两种方法中,快慢指针法在空间复杂度上更优,通常在实际应用中更常用。
2024-07-12 11:53:58 361
原创 安装和配置Tomcat以托管网页的基本步骤
安装Tomcat后,你可以通过网址访问你的网页。Tomcat 是一个流行的Java Servlet容器和Web服务器,常用于运行Java Web应用程序,但也可以用于托管静态HTML文件。以下是安装和配置Tomcat以托管网页的基本步骤:
2024-07-11 15:52:01 842
原创 C++_QT以及QT斗地主项目笔记
里面记录了很多学习C++和QT时遇到的困惑和解决办法,还有自己的一些思考,以及Java与C++同步学习的心得体会。文章中末尾的QT斗地主项目是看了「爱编程的大丙」老师在B站上的课程之后写的小项目,很遗憾目前还没有完成,后续有时间的话,一定会从头到尾完整复刻一遍
2024-07-09 12:40:13 1663
原创 leetcode 167.两数之和-ii-输入有序数组
的时间复杂度和 O(1) 的空间复杂度暴力求解,或者借助哈希表使用 O(n) 的时间复杂度和 O(n) 的空间复杂度求解。但是这两种解法都是针对无序数组的,没有利用到输入数组有序的性质。利用输入数组有序的性质,可以得到时间复杂度和空间复杂度更优的解法。上面的暴力求解法代码无法通过测试的原因是返回的索引从0开始,而题目要求返回的索引从1开始。分别加1,即可满足题目的要求。题目描述中指定你所设计的解决方案必须只使用常量级的额外空间。在这里,我们只需要将返回结果中的索引。参考「1. 两数之和」的解法,使用。
2024-07-09 11:51:07 311
原创 leetcode 88.合并两个有序数组
方法一没有利用数组 nums1与 nums2已经被排序的性质。这一方法将两个数组看作队列,每次从两个数组头部取出比较小的数字放到结果中。的后半部分是空的,可以直接覆盖而不会影响结果。最直观的方法是先将数组 nums2放进数组nums1的尾部,然后直接对整个数组进行排序。我们为两个数组分别设置一个指针 p1与 p2来作为队列的头部指针。中的元素可能会在取出之前被覆盖。那么如何直接避免覆盖。后面的位置永远足够容纳被插入的元素,不会产生。严格来说,在此遍历过程中的任意一个时刻,的元素被覆盖的情况。
2024-07-09 11:49:58 252
原创 leetcode1.两数之和
算法实现中,程序员选择将数组中的元素值作为键,将该元素在数组中的索引作为值。算法实现中,返回的应该是两个元素在数组中的索引,而不是元素值本身。通过这种方式,算法能够在 O(n) 时间复杂度内找到满足条件的两个数的索引。问题要求返回的是两个数的索引,而不是它们的值。我们需要返回的是索引 0,而不是元素值 2,所以返回。如果遍历完数组没有找到满足条件的两个数,返回一个空的向量。就是存储在哈希表中的那个数(补数)的索引,,返回的结果应该是两个数在数组中的索引。返回的就是这两个满足条件的数的索引。
2024-07-09 11:45:37 838
原创 Python零基础到精通-高级篇
【图片下载※】importurllib.requestasreqif__name__=='__main__':#**********begin*********#webpage=req.urlopen('http://www.gotonudt.cn/site/gfkdbkzsxxw/resources/img/logo.png')webdata=webpage.read()img=open('img/logo...
2022-05-30 19:23:09 3592
空空如也
LightSE搜索引擎项目
2023-04-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人