自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java线程共享模型之管程(线程状态、活跃性、ReentrantLock)

讲解线程状态、死锁、活锁、饥饿,ReentrantLock。

2024-12-23 15:08:31 768

原创 java线程共享模型之管程(synchronized原理、wait-notify、park方法)

sychronized各种锁的内容整理,wait-notify方法、park&unpark方法整理。

2024-12-20 20:10:43 958

原创 java线程共享模型之管程(锁及其操作)

synchronized锁的常见问题,与认识。

2024-12-17 13:20:21 889

原创 java中操作线程

java中创建、查看。线程暂停,打断。线程状态等使用方法总结。

2024-12-16 12:14:47 730 1

原创 线程与进程基础

线程与进程、并发与并行、同步异步调用、多线程解释。

2024-12-15 22:26:23 767

原创 期末课设 - 学生管理系统(c语言)(代码可运行!!!)

c语言实现学生管理系统,代码可运行,期末自用。

2024-12-10 09:19:46 368

原创 leetcode 之 双指针(java)(2)

先遍历一个数组,然后使用u作为下标记录,因为数组本身就已经有序了,所以,nums[u - k]就可以记录当前数字是否已经够两个了,然后一直遍历,返回最终结果。请注意,输入数组是以**「引用」**方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。** 删除重复出现的元素,使得出现次数超过两次的元素。​ 该方法是题解区一位大佬的,不得不说,牛逼!不要使用额外的数组空间,你必须在。,返回删除后数组的新长度。

2024-12-08 12:05:38 447 1

原创 leetcode 之 双指针(java)(1)

判断时候的状态转移方程就是dp[l] [r] = dp[l + 1] [r - 1] == true?) ,因此我们先进行排序,时间复杂度为(n log n ),随后外层套一个循环,之后,内部使用双指针,时间复杂度为O(n。我们上面思路有很大问题,可以改用动态规划的方式,通过空间换取时间。该题目如果使用最暴力的三重循环,那么时间复杂度为O(n。该步减少了向中间遍历的时间损耗。中选出三个整数,使它们的和与。假定每组输入只存在恰好一个解。本文就是使用中心扩散法。总时间复杂度为O(n。

2024-12-07 11:07:37 399 1

原创 高精度加法、减法、乘法、除法模板(java实现)

高精度加减乘除模板。

2024-12-06 14:03:18 452

原创 leetcode 之 二分查找(java)(5)

这道题,它有一个性质,每次旋转之后,分为两个有序区间,同时左边区间的所有数一定比第二个区间的最后一个数要大,同时右边区间是一个递增数组,因此,我们可以很明显的,单独取出来num[n - 1]这个数,然后对剩下的区间使用二分进行求。使用二分对[ l, r ] 区域求出结果是 target - nums[i]的值,最后返回 [ i + 1, mid + 1 ]即为正确结果。,它原来是一个升序排列的数组,并按上述情形进行了多次旋转。本题目的话,还是使用二分,但是首先要明确二分的条件,的形式返回这两个整数的下标。

2024-12-05 11:18:15 360

原创 leetcode 之 二分查找 (java)(4)

​ 该题目就是用取值范围作为边界。取到的mid作为标志,每次都遍历数组中的所有数,与mid比较,使用cnt记录。统计 <= nums[i]的值的个数,如果大于 (mid - l + 1) 说明重复数在左边区间,r = mid缩小查找范围,否则在右边,对于数组相关的题目,如果使用二分,首先要提取某种可以比较的性质,使用二分时的边界选取有两种情况。该题目,分析使用二分法,暴力枚举。),可知至少存在一个重复的整数。,你要判断是否存在两个整数。你设计的解决方案必须。

2024-12-04 11:33:45 464

原创 leetcode 之 二分查找(java)(3)

该题目与其上一道题目的区别是,该题目数组中有重复的数,因此,在判断的时候会有一些不同。,请你编写一个函数来判断给定的目标值是否存在于数组中。,其中每行和每列元素均按升序排序,找到矩阵中第。题目中说到,每行和每列元素均按升序排序,已知存在一个按非降序排列的整数数组。你必须尽可能减少整个操作步骤。你必须找到一个内存复杂度优于。,数组中的值不必互不相同。在预先未知的某个下标。

2024-12-03 10:27:19 439

原创 leetcode 之 二分查找(java)(2)

首先,题目要求查询target是否在矩阵中,同时矩阵是有序存储的,从左到右,从上到下增大,即右下 > 左上。令 l = -1, r = n,即恰好在矩阵长度左右范围 + 1,因为是开区间,不包含l和r本身。思路:①、我们先遍历矩阵的行,确认target所处的范围是在哪一行,使用idx记录。闭区间不需要添加判断,因为l和r有 + 1和 - 1的权值变化,最终会自己跳出循环。我们可以明显的看出,如果想要使用二分,就需要找有序的数组,此时我们看到,我们使用全开区间,即(l, r) 表示范围,

2024-12-02 12:55:52 997

原创 leetcode 之二分查找(Java实现)(1)

二分查找,每日code

2024-12-01 15:42:36 369 2

原创 2024/9/23 leetcode 148题 排序链表

给你链表的头结点head,请将其按排列并返回。

2024-09-23 13:28:23 590 4

原创 2024/9/23 leetcode 25题 k个一组翻转链表

给你链表的头节点head,每k个节点一组进行翻转,请你返回修改后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。

2024-09-23 13:00:24 433

原创 2024/9/22 leetcode 128题 283题

longestidx就是最终结果,每次遍历nums,然后如果该数的前一位不存在,说明可以从这个数开始统计连续区间,currentnum就是统计每一段区间长度,与最终结果取最大值,从而使得结果最大。本题目就是先使用一个set数组遍历原数组,去重,然后正式开始我们的逻辑。,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。本题题目就是双指针,我们直接看图,就用第一个样例模拟。移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。给定一个未排序的整数数组。

2024-09-22 11:00:00 1001

原创 2024/9/22 leetcode 第1题 第49题

本题嘛,还是哈希,就是转换一下思路,ump中,我们使用string对应一个vector,string就是排序后的字符串,然后我们将这个排序后的字符串对应的原数组中的字符串添加进去。排序后的字符就是我们哈希的key,这个也体现了哈希的思想。思路就是从前往后遍历nums,然后每次从res中寻找是否存在另一个(target - 当前数字)的值,如果存在就返回这两个值,如果遍历过后,依然没有找到,说明结果不存在,返回空即可。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。

2024-09-22 07:00:00 884

原创 2024/9/21 leetcode 19题 24题

这个方法原理就是,先然right移动n,那么之后left和right同步移动,相当于移动(m - n)次,这样left就处于了我们要删除节点的前一个结点,从而简化问题。就可以求解,同时我们需要注意,需要对left->next进行delete操作,防止链表中只存在一个结点的情况。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。然后此时我们发现left->next就是要删除的结点,然后我们直接left->next = left->next ->next;个结点,并且返回链表的头结点。

2024-09-21 11:19:19 1017

原创 2024/9/21 leetcode 21.合并两个有序链表 2.两数相加

将两个升序链表合并为一个新的链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。[][0]l2。

2024-09-21 10:02:17 1346

原创 (2)leetcode 234.回文链表 141.环形链表

我们将mid这个节点记录下来,然后将这段链表反转,以下是反转的逻辑,最后我们将pre返回就是结果,就是通过中间变量tem记录位置从而实现链表的反转。此时就很简单了,我们两边遍历head和head2进行比较,一旦不相同就返回false,比较结束没有返回false说明是回文链表,返回true.举例,像这个,我们从head开始遍历,每次遍历的时候,遍历过一遍就存入set, 如果有环的话,遍历到重复的结点时,就返回true。像这个,遍历到最后就是到了NULL,跳出循环,然后返回false.

2024-09-20 16:06:24 537 2

原创 2024/09/19 leetcode 160.相交链表 206.反转链表

的输入如下(你设计的程序。

2024-09-19 20:53:51 1058

原创 c++ prime课后习题个人解答(第六章)

其中有部分缺失的题目自行查阅。

2024-03-02 21:36:33 759

原创 算法总结归纳(第十二天)(剩余的图论)

图论剩余总结。

2024-01-31 14:15:56 1026

原创 算法总结归纳(第十一天)(部分数据结构、图论(部分))

部分数据结构加部分图论

2024-01-30 17:54:08 1228 1

原创 算法总结归纳(第十天)(动态规划第三部分)(线性dp)

线性dp,动态规划的一类。

2024-01-28 21:38:23 684 1

原创 算法总结归纳(第九天)(动态规划第二部分)

主要有01背包问题,完全背包问题,打家劫舍问题,股票问题

2024-01-27 12:53:27 835

原创 算法总结归纳(第八天)(动态规划简单题、背包问题)

主要为动态规划简单题,以及背包问题四大经典类型总结

2024-01-25 17:05:34 1624

原创 算法总结归纳(第七天)(贪心算法)

主要以贪心问题为主,主要以区间问题,双维度问题,以及各种类型为主。

2024-01-20 19:37:51 1116

原创 算法总结归纳(第六天)(回溯算法、递归类型)

回溯与递归,主要为bfs,暴力优先搜索以及剪枝优化。分为组合,分割,子集,排列,棋盘问题等。

2024-01-19 20:55:51 1164

原创 算法归纳总结(第五天)(数论、数学知识(第一部分)总结)

初等数论(部分)知识总结

2024-01-18 21:21:01 821 1

原创 算法总结归纳(第四天)(二叉搜索树总结)

以搜索树为主,包括属性、修改构造,以及公共祖先问题。

2024-01-17 17:06:29 812

原创 算法总结归纳(第三天)(普通二叉树(非搜索树)总结)

最重要的二叉树的前中后序遍历,以及各种递归,迭代实现方法,还有二叉树属性,修改构造,合并二叉树等问题。

2024-01-16 20:32:19 1542 1

原创 算法总结归纳(第二天)(数据结构线性表总结:链表、栈与队列、单调栈、单调队列、字符串)

今天主要是线性表总结。

2024-01-15 19:44:58 827 1

原创 算法总结归纳(第一天)(基础算法知识)

以上为一部分学过的较基础和重要的算法的总结。(主要是建立一个体系)

2024-01-14 20:49:19 905 2

空空如也

空空如也

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

TA关注的人

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