自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java中等题-最大间距(力扣)

思路:用基数排序:下面这个版本是我看了基数排序的视频之后自己写的,很多地方没有优化。其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回。数组元素个数小于 2,因此返回 0。排序后的数组是 [1,3,6,9]

2024-07-28 18:13:41 76

原创 Java中等题-排序链表

把链表分成两个链表,分别排序,然后合并(这个方法我不会,所以我借鉴的力扣某大佬写的)(请看我主页的另一篇《Java中等题-对链表进行插入排序》)

2024-07-28 15:40:05 118

原创 Java中等题-对链表进行插入排序

下面是插入排序算法的一个图形示例。部分排序的列表(黑色)最初只包含列表中的第一个元素。每次迭代时,从输入数据中删除一个元素(红色),并就地插入已排序的列表中。刚开始这个链表只有一个数,设为。对链表进行排序,并返回。如果连链表为空,直接返回。对链表进行插入排序。的下一个位置上就行了。

2024-07-28 14:25:04 106

原创 Java中等题-颜色分类(力扣)

对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。必须在不使用库内置的 sort 函数的情况下解决这个问题。其实我个人感觉这个思路不是很好理解,代码大家自己看吧。循环(也称为"for-each"循环),用于遍历。给定一个包含红色、白色和蓝色、共。这行代码是Java中的一个增强型。都代表了一个键和一个与之关联的值。分别表示红色、白色和蓝色。

2024-07-27 14:36:57 233

原创 Java中等题-合并区间(力扣)

然后设置一组start,end,如果下一个区间与上一个区间重叠,那就更新end的值,否则就把start end记录在动态数组ans中(这里选。区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].这里我本想用一个HashSet实现去重,但是后面发现HashSet。一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。区间 [1,4] 和 [4,5] 可被视为重叠区间。表示若干个区间的集合,其中单个区间为。,而不是静态,是因为不知道应该设多长)请你合并所有重叠的区间,并返回。

2024-07-27 12:32:05 261

原创 Java中等题-字母异位词分组

用一个哈希表,排序后的字符串作为键,具有相同字母不同顺序的字符串数组作为值。是由重新排列源单词的所有字母得到的一个新单词。可以按任意顺序返回结果列表。给你一个字符串数组,请你将。

2024-07-26 14:37:26 201

原创 Java中等题-四数之和(力扣)

让我以外的是,官方的去重方法并不是提高效率的主要原因(说明我的去重方法也是很可以滴!还有就是,这个题有判断溢出!但是只有两个用例是判溢出的,所以我偷奸耍滑排除掉了(别学我)提高效率的主要原因是:排除了很多特殊情况!请你找出并返回满足下述全部条件且。可以去重,最后转换一下就可以返回。一顿 if 操作猛如虎!我的思路:先排序,然后。去重有点难,所以我用的。2.溢出的情况怎么解决。

2024-07-26 01:13:20 376

原创 Java中等题-最接近的三数之和(力扣)

我的思路是:用一层循环+双指针,每次循环找出一个最接近Target的值,然后存到一个数组里面,最后找出最接近的那个值。复杂且跟勾石一样,还超时。看看ai的思路:也是一层循环+双指针,只不过用一个变量存储最接近的值,如果遇到更接近的值替换就是。与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。然后我看了力扣官方的题解,结果还不如AI,这里就不展示了。中选出三个整数,使它们的和与。假定每组输入只存在恰好一个解。

2024-07-25 15:24:04 138

原创 Java中等题-三数之和(力扣)

用Map数组装每个数值对应的下标,避免三个数里面下标相同(后面发现有点冗余,其实用一个ArrayList应该都可以,不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。差点就要超内存了呢,开心(个屁)明天看看大佬怎么做的,今天不学了。答案中不可以包含重复的三元组。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。

2024-07-24 17:29:45 107

原创 Java-按奇偶排序数组(力扣)

新建一个数组 res 用来保存排序完毕的数组。遍历两次 nums,第一次遍历时把所有偶数依次追加到 res 中,第二次遍历时把所有奇数依次追加到 res 中。[4,2,3,1]、[2,4,1,3] 和 [4,2,1,3] 也会被视作正确答案。我的思路:很单纯,就用两个数组一个装奇数,一个装偶数,再合并到一个数组。同样是两次遍历,我的就很好的演绎了什么叫脱裤子放屁(*_*)中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。

2024-07-21 20:12:01 119

原创 Java-公平的糖果交换(力扣)

我的思路:爱丽丝和鲍勃的糖果除以2,得到平均数mid;然后遍历少于平均数的那个人,如果另外一个人存在(少的人需要的数+少的人出的糖果数),那就返回就行了。两人想要互相交换一盒糖果,这样在交换之后,他们就可以拥有相同总数量的糖果。一个人拥有的糖果总数量是他们每盒糖果数量的总和。就是我忽略了一点(数学不好),不用判断是爱丽丝的糖多还是鲍勃的糖多,结果都一样!是鲍勃必须交换的糖果盒中的糖果的数目。然后,成功地失败了------------超时!是爱丽丝必须交换的糖果盒中的糖果的数目,盒糖果中的糖果数量,

2024-07-21 18:26:50 324

原创 Java-最长和谐子序列(力扣)

数组的子序列是一个由数组派生出来的序列,它可以通过删除一些元素或不删除元素、且不改变其余元素的顺序而得到。但感觉像是暴力解法,比较复杂,最终的效果只能击败百分之八!,请你在所有可能的子序列中找到最长的和谐子序列的长度。遍历每一种方案,把所有结果装到一个数组p里面,再取最大值。和谐数组是指一个数组里元素的最大值和最小值之间的差别。最长的和谐子序列是 [3,2,2,2,3]每个元素,如果(元素值+1)存在,就把。我们来看看其他大佬是怎么做的。现在,给你一个整数数组。来存每个元素及其个数,再。

2024-07-21 13:42:07 296

原创 Java-相对名次

看了思路之后感觉挺简单的,但是自己就是想不到,对于我来说主要原因就是不知道。思路:将原数组排序,但是要保存原来的顺序,再将结果按照原来的顺序排列。名次为 [1st, 2nd, 3rd, 4th, 5th]。名次为 [1st, 5th, 3rd, 2nd, 4th]。位运动员在比赛中的得分。然后还有一个小细节:结尾如果用。的运动员得分最高,名次第。位运动员的获奖情况。

2024-07-21 10:22:54 239

原创 Java-分发饼干

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。,这是能让孩子们满足胃口的饼干的最小尺寸;你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。思路:贪心+双指针,把满足孩子需求的最小的饼干给他。你拥有的饼干数量和尺寸都足以让所有孩子满足。

2024-07-21 09:31:29 226

原创 Java-两个数组的交集2

请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。如果map里面有这个值,并且出现次数>0 就装入resultList。因为不能用HashSet.add,所以着手的时候没啥思路。使用HashMap来存储键值对,键是数值,值是出现的个数。如果map里没有,就存入并设值为1,表示出现一次。如果map里面有,就值+1,表示出现次数+1。力扣上的题,借鉴了力扣官方视频的内容。用动态数组存储,因为不知道重复的个数。

2024-07-20 16:40:17 233

原创 Java-两个数组的交集

2.怎么把交集结果转化成整数数组并返回(这里不能单纯用一个数组接收,因为容易出现数组大小设置不当,出现末尾多个0的情况)力扣上友友的思路:使用HashSet的contains方法要比用add方法判断要明智一些,这样可以少写一个HashSet。1.输出的结果有重复的元素(解决方法:用HashSet的add方法)输出结果中的每个元素一定是。[4,9] 也是可通过的。

2024-07-20 15:10:20 107

原创 Java-丢失的数字

n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。这个范围内没有出现在数组中的那个数。但是这种方法的时间复杂度好像挺高的。

2024-07-20 14:25:39 114

原创 Java-有效的字母异位词

使用 数组.toCharArray方法把字符串变成数组,然后使用Arrays.sort()方法排序,然后判断是否相同即可。解题思路:异位词也就是把字母排序之后相同。中每个字符出现的次数都相同,则称。,编写一个函数来判断。

2024-07-20 13:05:45 205

原创 Java-存在重复元素

力扣上的题,参考了一下力扣上的解题思路。如果数组中每个元素互不相同,返回。如果任一值在数组中出现。

2024-07-20 12:43:27 164

原创 Java-多数元素

你可以假设数组是非空的,并且给定的数组总是存在多数元素。,返回其中的多数元素。多数元素是指在数组中出现次数。

2024-07-20 11:06:11 160

原创 Java-合并两个有序数组

最终,合并后数组不应由函数返回,而是存储在数组。个元素表示应合并的元素,后。中,使合并后的数组同样按。

2024-07-19 19:53:05 152 1

原创 Java[快速排列]

小趴菜第一次写博客,欢迎大家留言,我会认真看的

2024-07-19 15:40:53 101

空空如也

空空如也

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

TA关注的人

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