leetcode
文章平均质量分 51
网恋褙骗八万
希望我也能给你带来一点点的快乐
展开
-
最长回文子串 java语言
为什么代码中使用的是ans=high,是由于通过遍历的方式high指针已经前进了,并且i到high之间的字符串不可能超过之前找到子字符串的长度,因此,没必要一步步i++上来,每次比较max与当前长度的大小,得到最大的子字符串,并且记录下标位置到数组中,最后使用字符串的substring()函数得到最长的回文子字符串。存在的情况下,定义一个长度为2的int数组用于存储子字符串的下标,定义两个变量也可以。如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。s 仅由数字和英文字母组成。原创 2023-01-11 17:16:44 · 717 阅读 · 0 评论 -
寻找两个正序数组的中位数 java语言
如果采用将两个数组合并,并且有序后进行寻找的方式,显然是比较简单的,但是此时时间复杂度比较大,不符合题目给出时间复杂度log(m+n),由于log(m+n),那么就要想到使用二分法的方式进行解决。两个有序的数组中找到中位数,如果两个数组的长度和为奇数或者为偶数,即表示找到找中位数为两个数之和,取均值。如果为正常的返回情况,那么得到数值,并且比较二者数值的大小,并且将小的部分在数组中去掉。合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。请你找出并返回这两个正序数组的。原创 2023-01-06 14:42:39 · 596 阅读 · 0 评论 -
无重复字符的最长子串 java语言
先走快指针,判断当前的字符是否存在于set集合中,如果存在就说明存在重复的字符在滑动窗口set集合中,那么就通过循环遍历慢指针的方式从set集合中移除慢指针指向的字符,同时还要把快指针字符放进set,并且比较res与fast-lower的长度,其目的得到最长的长度。使用一个set集合作为一个滑动窗口,分为快慢指针,循环停止的条件为:快指针==字符串s的长度了。下面来个labuladong万能模板,来解决滑动窗口的问题。s 由英文字母、数字、符号和空格组成。,请你找出其中不含有重复字符的。原创 2023-01-10 09:44:47 · 487 阅读 · 0 评论 -
两数相加 java语言
采用循环的方式进行相加,循环不终止的条件为:两个链表不同时为空或者进位数nextVal不为空,就一直循环相加,首先判断链表1是否为空,如果不为空,那么就获取当前链表1的值,如果为空那么取值为0,链表2也是如此,给头指针head的下一个节点赋值,并记得取余,以及得到进位数nextVal,迭代链表1、链表2和头指针head,由于res是一个头结点,那么在返回的时候,返回的就应该从res的下一个节点开始。谁让我只会正面想呢,于是就出现了下面的代码(题解与上面的差不多,只是上面的正面理解)它们每位数字都是按照。原创 2023-01-06 10:42:58 · 695 阅读 · 0 评论 -
两数之和 java语言
那么采用map集合是比较好解决的,首先定义一个map集合,key为Integer类型,即表示数组的数值,value为Integer类型,即表示数组数值的下标值,通过for循环的方式遍历数组,判断targer-当前数组值是否存在于map集合中,如果存在则返回下标值i和map.get(target-nums[i]),如果不存在那么就添加到map集合中。* 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。* 输入:nums = [2,7,11,15], target = 9。原创 2023-01-06 10:28:12 · 346 阅读 · 0 评论