自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Hugegraph环境配置及查询接口

hugegraph图数据库的环境配置和部分配置文件的详解,以及基于springboot的的查询接口

2024-01-22 11:49:19 1506

原创 关于在函数内部修改指针内容的问题

在上面代码中的问题就是:将t的地址作为参数传入函数中,在执行了函数内部的操作后,t仍然是空值。而出现这个问题的原因是:在函数参数传递的过程中,只是将t的副本传入函数,实际上t未被改变。

2023-06-14 22:31:32 329 2

原创 javaWeb登录和注册案例

/根据用户名查询用户 @Select("select * from tb_user where username= #{username}") User selectByUsername(String username);//添加用户 @Insert("insert into tb_user values(null,#{username},#{password})") void add(User user);

2023-06-07 17:07:02 2415

原创 day28. 找出字符串中第一个匹配项的下标

用滑动窗口的方法来解决这个问题,用两个循环来实现。

2023-05-24 16:28:35 56

原创 day27左旋转字符串

ii.使用整体反转+局部反转。ii. 使用整体反转+局部反转。

2023-05-23 15:39:22 42

原创 day26反转字符串中的单词

里边的思路对空格进行删除,这个操作的难点就是并不是删除所有空格,而是要保留两个单词之间的空格,因此解决的细节就是双指针中的慢指针在快指针遍历完一个单词后要将所指元素赋为空格在向前一格。step2,3:这两步我的解决办法一致,用一个新定义的交换方法,指定从哪到哪进行交换。i.将原字符串前后以及中间多余的空格去掉得到一个新字符串。iii.将反转后的字符串的每个单词再反转。ii.将新字符串反转。

2023-05-19 16:23:56 32

原创 day25替换空格

通过新创建一个数组来实现。先遍历原字符串得到空格个数k,则新数组的长度为原字符串长度加上2k;接着遍历原数组,若遍历到空格则给新数组直接添加三个元素即'%','2','0',反之则正常对应赋值。

2023-05-17 16:30:35 31

原创 day24反转字符串 II

对于第一部分,进行重复的交换操作,难度不大。对于第二部分,分为两种情况,一是片段长度大于k,则交换前k个;二是片段长度小于k,则把整个片段做交换。第二部分的操作细节:首先要知道该片段做交换的起始指针两种情况中都是固定的,区别就是末指针。可以定义一个末指针end,第一种情况下end=起始指针+k-1,第二种情况下end=length-1。本题的难点是如何寻找需要进行交换操作的字符串片段,根据题意可以把字符串分为两部分:第一部分是前2nk个字符串,第二部分是剩下的长度小于2k的片段。

2023-05-16 20:11:06 28

原创 day23反转字符串

由上可知(a^b)^b=a,遍历的循环与双指针法相比不变,而交换操作大概就是:a=a^b,b=a^b(此时的a=a^b,此时b=a),a=a^b(此时a=b),也就完成了交换。将两个操作数转换成二进制,第一个操作数的的第n位于第二个操作数的第n位 相反,那么结果的第n为也为1,否则为0。用左右两个指针不断向中间遍历,将指针所指元素交换,直到两指针重合。ii.位运算符(位异或^)

2023-05-15 13:09:50 34

原创 day22四数之和

与三数之和的思路类似,无外乎对于四个数要多加一个指针,也就是多加一个循环,多进行一次去重。

2023-05-12 15:42:38 29

原创 day21三数之和

i.对于双指针法为什么要求数组必须要有序?没参透。。。

2023-05-11 22:08:49 51 1

原创 day20赎金信

利用哈希表的特性,将magazine存入一个哈希表,记录字母和出现次数,接着遍历ransomNote判断哈希表中是否含有所有ransomNote中的元素,而判断操作细节是将哈希表中和遍历到的ransomNote元素一样的键值对的值(即出现个数)减一,直到小于零。创建一个数组来代替哈希表,长度为26(代表26个字母),每个元素代表出现的个数。其余的操作与哈希表类似。

2023-05-10 17:06:07 36

原创 day19四数相加 II

i.如何记录数组1与2元素和的出现次数运用哈希表的get()方法获取原本的次数,若本来就没有就把次数赋1,反之就赋++get(key)。ii.最后的返回值的记录满足条件时不应该是简单的++,而是加上对应的哈希表中的value。

2023-05-09 16:08:13 38

原创 day18两数之和

i.关于map中键值和数组中元素下标的对应关系本题希望得到的效果是数组中同一个元素在答案里不能重复出现。而map中的键是不重复的,因此键对应元素,值对应下标。

2023-05-08 13:03:33 38

原创 day17快乐数

首先可以知道的是如果在循环的过程中出现了一个之前出现过的数就意味着进入了死循环。而知道了这个信息就可以利用哈希表不重复的特性来判断是否出现过之前出现过的数。这个问题就是对取余和取模的运用。用取余来判断是否遍历到每一个位置,用取模来获取每一位置上的数进行平方。i.获取数的每个位置上数字的平方和。ii.如何判断是否存在无限循环。

2023-05-07 22:33:26 31

原创 day16两个数组的交集

i.结果数组要等到哈希表2创建后才能创建,因为一开始无法确定长度ii.foreach方法复习//将nums1中元素依次赋给i,再将i存入哈希表iii.将哈希表转为数组的其他方法。

2023-05-05 16:54:28 29

原创 day15有效的字母异位词

用一个数组来存放两个字符串中每个单词的个数,而要用一个数组来存放两个字符串单词个数的信息并判断个数是否一致则可以将一个字符串的单词个数记为正数而另一个记为负数,最终通过判断计数数组中是否存在负值(有负值意味着两个字符串中单词的个数不一致)。

2023-05-04 12:34:48 44

原创 day14环形链表 II

定义两个快慢指针,快指针一次向后移动两位,慢指针一次向后移动一位。一个循环不断让两个指针向后遍历直到两个指针所指的节点地址值相同。(如此定义快慢指针的速度是为了避免快指针跳过慢指针的情况)用两个快慢指针,两层循环,不断遍历直到最后找到两个指针指向地址值一样的节点时,返回其中一个节点,否则则返回null(意味着不成环)。ii.双指针判断成环+方程思想解成环初始位置。--方程思想解成环初始位置。

2023-04-28 16:19:34 35

原创 day13链表相交

i.题目理解的偏差:题目中所给的两个链表本身就是想交的,最后要查找的不是存储的值相同的节点而是地址值相同的节点。还可以通过这个例子来说明:例子中所给的两个链表本身就是在8那个位置相交的,因此结果也只能是8而不是1。

2023-04-27 12:47:36 34

原创 day12删除链表的倒数第 N 个结点

i.关于虚拟指针的作用可以省略头节点为空的情况的判断。ii.双指针法最后的返回值应该时虚拟节点的next如果n=1,若返回head则最后会返回head指向的节点,而没有实现删除操作,而引入虚拟节点后,可以对虚拟节点进行删除操作:将虚拟节点的next指向head的next,最后输出虚拟节点的next则就得到删除第一个元素的链表了。这也间接体现了虚拟节点的好处。

2023-04-26 16:01:13 44 1

原创 day11两两交换链表中的节点

i.当链表有奇数个时判断前一个指针(即 i )的next是否为空,若为空则遍历到最后一个元素,直接结束循环即可。ii.以上判断操作中要加上一个对 i 是否为空的判断,是为了避免空指针的异常,否则会报错。

2023-04-25 21:30:27 33

原创 day10翻转链表

i.当较快的那个指针遍历到最后一个节点后结束循环,但要添加一个最后一个节点指向前一个节点的操作,否则最后只会输出最后一个节点。//……//会报错:Exception in thread "main" java.lang.NullPointerException//……//这样写不会报错暂时没搞懂是什么原因>-

2023-04-24 19:00:15 51 1

原创 day09移除链表元素

i.对于&&符号的理解偏差:对于&&前后条件1和条件2,是先判断条件1若不满足则直接不判断条件2.i=head1;//将head1的地址赋给了i1。

2023-04-21 16:27:49 31 1

原创 day08水果成篮

我认为的这道题的难点就是缩小窗口时该怎么移动前面的那个指针。首先应该知道的是这个指针移到什么位置时才算移到正确的位置:当窗口缩小到其中只有两种类型的数时。而解决办法是:在前指针不断向前时的过程中将计数数组中指针所指类型的个数减一,直到某个类型的个数减到了0,那么意味着窗口缩小到了只有两个类型的状态,即前指针移到了正确的位置。

2023-04-20 15:51:57 33

原创 day07删除有序数组中的重复项

因为i指向的是需要被覆盖的元素,那么当循环结束时,i所指向的就是最后一个元素,则返回长度为i+1。

2023-04-19 16:32:24 86 1

原创 day06搜索插入位置

另一种情况是mid<left则target所在位置是mid+1本质是二分查找找出target大概位置,最后通过mid和left(也可以是mid和right)的关系判断最终位置(因为所给数组是有序数组则最终位置一定在mid两边)

2023-04-18 10:25:51 21

原创 day05螺旋矩阵

【代码】day05螺旋矩阵。

2023-04-17 21:30:54 56 1

原创 day04长度最小的子数组

1.暴力解法第一个循环遍历每一个元素,第二个循环让该元素与其后面的元素不断进行累加,看累加的结果是否大于等于目标值,最后返回最小的长度,注意这里返回最小的长度可以用三目运算符来进行判断,将最新的长度与之前赋予的长度进行比较取最小的。但是这种解法会超出时间限制!!2.滑动窗口(可以理解为双指针的一种)i和j之间组合成一个窗口,若窗口中元素的和满足条件则更新最小的长度且向右边缩小,若不满足则窗口向右边扩大,如此循环到最后一位滑动窗口的精妙之处在于根据当前子序列和大小的情况,不断调节子序列的起始位置。从而将

2023-04-14 20:51:02 27 1

原创 day03有序数组的平方

(a>0?-a:a)

2023-04-13 16:44:08 67 3

原创 day02移除元素

需要注意的是:最后会根据你所得到的新长度来切割原数组得到新数组,且新数组可以是不按原来顺序的。

2023-04-13 00:02:16 35 1

原创 day01二分法查找

1.没注意if和else if的细节left=mid+1;上图为错解。第二个写为了if而不是else if导致else对应于第二个if而独立于第一个if。

2023-04-11 20:47:02 104 1

空空如也

空空如也

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

TA关注的人

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