自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 leetcode有效的括号

1.这代码就是一次性解决问题 我不管你入栈出栈怎么样 只要你入栈是左放行 但你入栈是右的时候我取出栈顶元素去匹配 如果匹配不成功那就是有问题 从内部解决问题的方式学到了 最后如果留有元素说明false 没元素说明true。泛型里是一个类而不是基本类型 所以是不行的就像不行一样。每一个左都要和一个右对应 而且是正确顺序如{[()])这种是可以的。理解了以后 如果你只单纯判断{}()[]这种肯定是不行的。他们都是通过封装一个类去实现约束字符或者是整数。这种小丑代码是不行的。

2024-05-07 01:00:35 436 2

原创 JavaSE 复习 汇总 总结(一篇学完大学java课程)

本篇汇总大部分javaSE的内容 简要的介绍相关的概念 我自己复习用的 涵盖了java基础部分

2024-05-02 23:56:14 997 1

原创 Git 的基本概念和使用方式

5. 拉取(Pull):拉取是将远程仓库的代码更新到本地仓库的过程。6. 推送(Push):推送是将本地仓库中的代码更新到远程仓库的过程。仓库可以是本地的(本地仓库)或远程的(远程仓库)。6. 拉取和推送:使用git pull命令从远程仓库拉取最新的代码变动,使用git push命令将本地仓库的变动推送到远程仓库。提交并推送代码:每个团队成员在完成一部分工作后,将代码提交到本地仓库,并将代码推送到中央仓库。3. 提交变动:使用git commit命令将暂存区中的变动提交到仓库,并生成一个新的提交记录。

2024-04-30 23:58:51 142

原创 leetcodeH指数

这段代码的时间复杂度为O(nlogn),其中n是论文总数。这是因为代码中进行了一次排序操作,时间复杂度为O(nlogn),然后是一次线性扫描,时间复杂度为O(n)。: 这行代码判断当前论文的引用次数是否大于或等于剩余未检查的论文数量。这是H指数的核心定义:一个研究者的H指数是指他至少有h篇论文的引用数大于等于h。如果循环结束后仍未找到满足条件的H指数,则返回0,这表示该研究者的H指数为0。数组进行排序,以便后续的计算。的长度,即研究者的论文总数。,即当前未检查的论文数量。: 返回计算得到的H指数。

2024-04-30 23:49:30 254

原创 leetcode跳跃游戏||

思路还是用贪心算法去写,去得到最大距离下的走了几步 一直去遍历 直到最后遍历完数组 你可以最短到最后一位数组的元素时 去return 步数

2024-04-29 23:50:54 395 1

原创 leetcode跳跃游戏

贪心算法和动态规划在这个问题上的实现确实非常相似,因为这个问题具有贪心选择性质,也适合用贪心算法解决。在这个特定问题上,贪心算法和动态规划的思路是一样的,都是通过维护一个变量来记录当前能够到达的最远位置,然后遍历数组来更新这个变量。状态转移方程 maxReach = Math.max(maxReach, i + nums[i]);// 更新能够到达的最远位置。定义状态数组 这里是一维线性的 直接定义一个变量int maxReach = 0;// 记录当前能够到达的最远位置。动态规划或者是贪心算法。

2024-04-29 23:13:21 441 1

原创 leetcode买卖股票的最佳时机

这个算法遍历整个价格数组,并维护两个变量:最低买入价格和最大利润。在遍历过程中,我们不断更新最低买入价格,并计算当前利润,然后更新最大利润。最后返回最大利润即可。:定义状态来表示当前持有股票或不持有股票时的最大利润,然后根据状态之间的转移关系计算最终的最大利润。遍历价格数组,找到最低的买入价格,然后在之后的某一天卖出股票以获取最大利润。第一眼暴力双层循环去模拟买和卖的过程,但是这题一定是通不过的。

2024-04-28 23:55:03 426 3

原创 leetcode轮转数组

​​​​。

2024-04-28 23:28:24 277 1

原创 leetcode多数元素

相比之下,使用hashmap.keySet()方法可以获取HashMap中的所有键的集合,这确保了我们只遍历实际存储的元素,而不会受到底层数组长度的影响。在这种情况下,使用hashmap.size()返回的是HashMap中当前存储的元素数量,而不是数组的长度。如果你使用索引遍历HashMap的长度,可能会导致遗漏某些元素,因为数组的长度可能大于HashMap中当前存储的元素数量。实际上:在Java中,HashMap的内部结构是由键-值对组成的数组,遍历HashMap时,实际上是遍历这个数组中的元素。

2024-04-25 00:39:20 470 3

原创 leetcode删除有序数组的重复项||

有第一题的基础很容易写 只需要添加一个。

2024-04-24 18:47:07 112

原创 leetcode删除有序数组的重复项

采用计算重复个数 去移动第一个指针的位置 第二个指针用于去判断有几个重复遍历数组。直接模拟 采用覆盖的方式去删除重复项 很浪费时间和空间。

2024-04-24 18:19:44 238

原创 leetcode移除元素

更优解就是如果碰到元素相同时 直接把尾指针替换到头指针 这样也不用for循环去完成 妙哉 good。前一天学完双指针,今天看到想直接用 定义头指针和尾指针,代码逻辑很好实现,直接模拟即可。没有问题 就是用了for循环好像让空间使用更多了。好家伙 再去看官方题解 一模一样的思路。

2024-04-24 00:41:21 302 1

原创 leetcode合并两个有序数组

还可以优化这个代码,然后思考双指针只需要判断两个大小即可,因为这就好像两个队列并成一个队列(按照大小顺序)只需要判断然后指针向后移就可以 但是一直碰到数组边界问题就很烦 一直在IDEA里debug 然后通过if判断提前终止循环还有flag去控制需不需要覆盖nums1 最后通过了 优化后时间复杂度为。第一眼看上去挺简单的 发现确实不难 第一时间想到用java中array库中sort方法进行快排,只需要第二个数组替换掉第一个数组后面的数据即可实现。但是快排的时间复杂度是。

2024-04-22 23:45:21 175

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除