个人leetcode记录
记录自己刷算法题的过程
王小侯
个人小菜鸡一枚
展开
-
求最长回文数,方便解法
回文数类似问题皆可借鉴此方法原创 2022-10-01 10:11:54 · 220 阅读 · 0 评论 -
HashMap的getOrDefault() 方法
getOrDefault() 方法获取指定 key 对应对 value,如果找不到 key ,则返回设置的默认值。 hashmap.getOrDefault(Object key, V defaultValue)原创 2022-04-23 12:51:58 · 181 阅读 · 0 评论 -
求两数之和
这一题是leetcode中的第一道题,首先查看题目信息 这道题刚开始看成了数组是顺序存放的,便想着使用动态规划的知识来计算,当时想的是用一个low和high分别存放两个数的上下标,然后分别存放最大最小值如果两个值加起来比所要求的target值打的话,就将high缩小直至两个值之和小于或者等于target,当两数之和相等时便直接将下标返回,假如小的话,就开始增大low就这样不断的进行计算,最后就可查询出最终答案。 但是忽然发现题目并未说明数组是顺序排放的,这个时候就想起来了HashMap 使用KEY存放nu原创 2021-09-20 14:24:38 · 108 阅读 · 0 评论 -
合并二叉树
首先先看题目 先看题目,首先咱可以看出来这是一道搜索题,我本人基本也没做过类似的题。但是有大概的思路,就是深度搜索,假如判断当前结点为空,那么就将另外一个树给返回。假如两个树都不是空,那么就重新声明一个结点,此结点的值为两个树当前结点的val值相加所得。然后new的这个结点的左边是两棵树的左子树相加,结点的右子树是两个结点的右子树相加。最终将此结点返回。 代码如下 /** * Definition for a binary tree node. * public class TreeNode { *原创 2021-09-12 22:31:25 · 65 阅读 · 0 评论 -
字符串的排列
先看题目 这里注意Arrays.queals(a,b)和直接使用a.equals(b)的区别。这道题也是一个滑动窗口的问题,先用数组存下第一个字符串。该数组大小为26。然后用第二个字符串中的连续26个判断两个数组中各下标所代表的数字是否相同, class Solution { public boolean checkInclusion(String s1, String s2) { int[] a = new int[26]; int[] b = new int[2原创 2021-09-11 18:19:39 · 70 阅读 · 0 评论 -
无重复字符的最长子串
无重复字符的最长子串 老方案,先上题目哈哈 这道题最先想到的就是利用一次循环,来遍历来寻找是否有相同的字符。然后首先声明一个字符串,然后记录当前字符串的长度,然后利用indexOf函数来判断第i个字符是否在前面发字符串中出现。加入出现就更新字符和更新最大长度,假如不是就将当前字符串+1.代码如下 class Solution { public int lengthOfLongestSubstring(String s) { int t = s.length(); i原创 2021-09-10 23:38:19 · 84 阅读 · 0 评论 -
旋转0问题
问题简介如下 此问题思路是使用left和right分别记录当前所原创 2021-09-07 20:18:26 · 184 阅读 · 0 评论 -
旋转数组记
旋转数组 class Solution { public void rotate(int[] nums, int k) { int n = nums.length; k = k % n; int count = gcd(k, n); for (int start = 0; start < count; ++start) { int current = start; int prev原创 2021-09-06 21:12:57 · 73 阅读 · 0 评论 -
二分查找并插入java实现
记录第二道想记录的二分算法题 这个题是二分查找的第三题,个人觉得也有必要纪念一下。首先先看本道题的题目 本道题不仅需要查找是否有相同的变量,还需要假如未找到相同的变量,还需要将所要查询的变量插入到数组中。在刚开始本人只是查找是否相同,然后就想当然的认为,假如找不到相同的变量,那么mid值就是需要插入的下标值,但是再提交了几次以后,发现不太对劲,后续又想到了在相等情况下假如还未找到相等的数值之后,mid的值会进行一次新的改变,这个时候就需要判断mid值是比target值大还是小,假如比target值大的话,原创 2021-09-05 16:08:36 · 261 阅读 · 0 评论 -
二分查找Java实现
算法第一题-简单二分查找 首先是题的简介 这是我本人开始刷leetcode算法题的第一道题,也是一个简单的二分题。我也学过二分的知识,但是没有经常使用过,看到这道题也知道简单的过程,也就是通过每次判断中间值,当所要查询的值比当前中间值大时就将中间值+1赋给最小值,反之则将中间值-1赋给最大值,这样最终即可查找到所要查询的值是否在列表中 下面是代码本身 class Solution { public int search(int[] nums, int target) { int a = 0,b = n原创 2021-09-05 15:14:13 · 114 阅读 · 0 评论