自定义博客皮肤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)
  • 收藏
  • 关注

原创 反转字符串中的元音字母--力扣345题

反转字符串中的元音字母:元音字母的第一个变成倒数第一个,第二个变成倒数第二个…也就是第一个和最后一个交换,第二个和倒数第二个交换…如果我们设置两个指针分别为 left ,right,分别指向元音字母的第一个和最后一个,两只针同时向前移动,那么每次两只针指向的字母就是需要交换的两个。先判断,后交换,在找到元音字母之前指针一直在移动class Solution42 { public String reverseVowels(String s) { int left=0;

2022-03-06 10:38:39 251

原创 求多数元素 投票法 java

采用投票法 求数组多数元素,原理如下:假设有一个for循环,分别设置数组中的每一个数字为候选人,每一个候选人上台时都会有一次投票,投票规则如下:如果候选人与自己相等,那么就投一个+1票,反正投-1票。那么最后的投票结果result除了数组中的众数之外都为负数。我们只需要判断以下即可。class Solution32 {//投票法 public int majorityElement(int[] nums) { int candidate=0; int result

2022-02-16 19:59:52 259

原创 相交链表-情人节限定-错位时空--我肯定在几百年前就说过爱你,只是你忘了,我也没记起 走过 路过 没遇过,回头 转头 还是错。

情人节,做点浪漫的题目。我肯定在几百年前说过爱你,只是你忘了,我也没记起,走过,路过,没遇过,回头,转头,还是错…两个链表a1,a2,判断它们是否相遇,这里采用双指针的方法。设两个链表的头部分别为headA,headB,a1=a1null?headB:a1.next;b1=b1null?HeadA:b1.next;也就是说两个指针分别从头开始以同样的速度遍历两个链表,假如当前的链表已将遍历完成了,那么就从另一个链表开始从头遍历。下面我们分析这样做分别会有什么后果:1.假如这两个链表是相交的

2022-02-14 11:25:10 274

原创 java-数组最大子序和

给定一个数组a,求最大子序和:设一个变量sum,用它来储存子序和,比较暴力的办法是求出当前数组所有可能的子序的和再从中找到最大值。设置一个变量sum,给sum一个初始值0;设一个变量ans,初始值a[0];用它来返回最大值;如果a只有一个数字,那么当前的sum就是最大子序和;但是如果a不止只有一个数字呢,怎样确定sum最大值呢?数组中的数字可能是负数,0,正数。假如我们这样:sum从a[0]开始加,遇到正数或0时sum=sum+a[i];遇到负数时,当前的sum就该停止了,此时的ans=max(ans

2022-02-13 16:35:33 391

原创 java-双指针-删除数组指定数字

删除数组中的指定数字我们要做到:1.找到数组中存在的指定数字2.删除它,并保持其他数字的相对位置不变,可以正常输出。于是我们的任务就是**找到指定数字以及保证除此以外的数字可以按原来的相对位置输出。**这样单在效果上看我们就完成了删除指定元素的效果。总而言之,如果,我们能保证除指定元素以外的数字能正常输出那么在视觉效果上我们就达到了删除指定元素的效果。综上,如果不使用双指针,其实有一种更简单的方法:设指定元素为val,我们先建一个数组ans,遍历题中给的数组nums,如果nums[i] ! =va

2022-02-13 14:49:46 843

原创 java-双指针-删除数组重复项

删除重复项,要求我们把多余的部分删去,也就是,我们的任务包括找到和删去。1.找到:利用双指针把两个数字进行对比,可以判断是否重复。2.删去:这里采用覆盖的方法.如果right指针与left指针不相等,则将left+1的值赋为right.如图所示。通过观察可以发现,不管是哪种情况,right指针都会向前移动,而left指针只会在left与right不相等的时候移动。两个指针你追我赶的关系。需要注意,循环最后的结果是,right指针指向了数组的末端,在left指针之前,全部是不重复的数字。所以最后

2022-02-12 16:38:01 462

原创 java-合并两个有序链表

关键词:有序。1.创建一个新链表用来存储合并后的链表。2.设置两个指针,依次从两个链表的头部开始遍历,比较两指针所指向的节点的数值大小,将小的数值放在创建好的新链表中。3.哪个指针的数值被放到了新链表中,哪个指针向后移动,另一个指针不动。4.更新后的指针继续进行比较并持续更新。5.假如有一方的数值已经被遍历完了,则将另一方的数组依次放进新链表中,数值之间的相对位置不变。class Solution { public ListNode14 mergeTwoLists(ListNode14

2022-02-12 15:27:14 2412

原创 java-栈-有效的括号

栈的特点是只能在栈顶操作,从栈顶出,从栈顶入,早进晚出。假设给定一组括号且是正常的顺序时,如果从左向右开始遍历,那么越早遍历到的左括号越晚找到与之对应的右括号,这在一定程度上是符合栈早进晚出的特点的。那么我们要解决的就是括号什么时候入栈,什么时候出栈的问题。步骤:1.如果我们遇到的是左括号,那么我们就将它入栈,等待与之对应的右括号。2.如果我们遇到的是右括号,先判断一下此时栈是否为空,若为空,返回false;若不为空,将栈顶元素出栈,判断与右括号是否匹配。3.以上操作可以保证每个右括号对应的是

2022-02-12 14:39:25 186

原创 给定一个String数组,找出其最长的公共前缀

我们要做的是:1.找到一个前缀2.确定他是公共的且最长的我们先设置一个变量ans,用它来储存前缀。我们先把String[0]的值赋给ans,用它作为ans的初始值。这样我们就有了一个前缀。接下来我们需要确定他是公共的最长的,公共的要求每个元素都要有这个前缀,因此我们需要遍历整个String数组。最长的,要求我们遍历每一个String[i]的所有字母。由上可得,我们需要两重循环。第一重:String[0]String[i],第二重:String[i].getchar[0]String[i].ge

2022-02-12 14:00:08 519

原创 java-map-罗马数

public class demo11 { public static void main(String[] args) {Solution11_ solution11=new Solution11_(); System.out.println(solution11.romanToInt("MCMXCIV")); }}class Solution11_ { public int romanToInt(String s) { Map<Str.

2022-02-12 13:37:01 56

原创 java-链表实现两数相加,并用链表返回

两数相加,从尾部开始,所以,链表的头部应该是数字的尾部,依次向数字的头部串联应该设置三个链表,两个链表用来储存需要相加的数,一个链表用来存储相加之后的结果。将链表对应位置进行相加,记录sum值,此时相加之后该位置的值应为sum%10,该位置的进位carry为sum/10,下一位置时,该位置的值为**(sum+carry)%10**,进位为**(sum+carry)/10**,所以为了方便,我们一开始就设置一个carry,并将其值设为0。以上的想法只能满足两个数字的相同位数的情况,还应考虑一些事情,如果两

2022-02-12 10:14:50 856

原创 java-双指针排序-有序数组的平方排序

双指针排序一般用于两端无序,中间有序的情况,若完全无序,则不能使用有序数组分为三种:1.所有数字全为正数,0;2.所有数字全为负数,0;3.数字包含负数,0,正数前两种情况平方后数字的排序位置不会改变,第三种情况,平方之后的最大最小值会发生变化,也就是数组的两端可能会变得无序。 public int[] sortedSquares(int[] nums) {//返回值为数组 //先平方 int nums1[]=new int [nums.length];for(int i=0;i&

2022-02-11 22:58:28 402

原创 java-二分查找

java-二分查找/**定义三个指针 right ,left,midmid=(left+right)while循环,当right<left时结束循环。当当前数字比mid小时,right向前移动,right=mid-1当当前数字币mid大时,left向后移动,left=mid+1;循环中也要注意mid的及时更新*/public void b(int[] nums, int target) { int left = 0; int right = nums.

2022-02-11 22:10:26 163

空空如也

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

TA关注的人

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