自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第八天 | 344.反转字符串,541.反转字符串Ⅱ,Offer05.替换空格,151. 翻转字符串中的单词,Offer58-II.左旋转字符串

arraycopy()中的参数:原数组,原数组拷贝起始位置,新数组,新数组拷贝起始位置,拷贝长度。其实在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。双指针法,定义快慢指针,快指针用来遍历需要更新的元素,慢指针用来存放更新元素的位置。的前k的字符,写了一堆逻辑代码或者再搞一个计数器,来统计2k,再统计前k个字符。因为要找的也就是每2 * k 区间的起点,这样写,程序会高效很多。解题思路:双指针,分别指向开始和末尾,逐次交换值。

2023-06-15 14:36:22 84 1

原创 代码随想录算法训练营第七天 | 454.两数相加,383.赎金信,15.三数之和,18.四数之和

接下来如何移动left 和right呢, 如果nums[i] + nums[left] + nums[right] > 0 就说明 此时三数之和大了,因为数组是排序后了,所以right下标就应该向左移动,这样才能让三数之和小一些。如果 nums[i] + nums[left] + nums[right] < 0 说明 此时 三数之和小了,left 就向右移动,才能让三数之和大一些,直到left与right相遇为止。主要理解剪枝和去重操作,在三数之和的基础上再嵌套一层。注意点:最后判断条件应该是。

2023-06-13 16:46:16 87 1

原创 代码随想录算法训练营第六天 | 242.有效的字母异位词,349.两个数组的交集,202.快乐数,1.两数之和

用数组模拟哈希,数组的0到25位存储字母,第一个字符串让数组对应的位置++,第二个字符串让对应的位置--,最后判断数组是否都为0,如果是,说明是字母异位词,否则说明不是。这里使用map的哈希表结构,需要使用 key value结构来存放,key来存元素,value来存下标,那么使用map正合适。两个知识点,一是无限循环需要将判断这个数是否出现过,二是计算一个数各个位置平方和的下一个数。判断元素在一个集合中是否出现过,使用哈希表的数据结构。解题思路:set作为哈希结构存储元素。

2023-06-12 17:14:07 68

原创 代码随想录算法训练营第四天 | 24.两两交换链表中的节点 ,19.删除链表中的倒数第N个节点,160.相交链表,142.环形链表Ⅱ

解法二:先计算两个链表的长度,将长链表先移动到和短链表相同的位置,然后判断两个节点是否相等。相等直接返回,不相等继续移动。解题思路:画图,弄清楚节点之间的指向改变,弄清楚循环的终止条件和需要临时保存的节点。最后确定循环中cur指针的移动。解题思路:画图,利用快慢指针,先找到要删除节点的前驱节点。当p在A链表走到null时,从B链表开始走;当q在B链表走到null时,从A链表开始走。解法一:走的长度相等时,最后相遇点即是交点。

2023-06-10 15:36:11 92

原创 代码随想录算法训练营第三天 | 203. 移除链表元素,707.设计链表,206.翻转链表

通过前驱节点的next指针进行操作。可以使用虚拟头结点的方式避免头结点的特殊判断。对于for循环内的终止条件,可以考虑对头结点的操作,比如查询或添加头节点。解题思路:进行节点的添加和删除操作,一个关键的点是要。注意比较双指针思路和递归三部曲中的对应关系。的方式来避免头结点的特殊判断。

2023-06-09 18:24:37 34

原创 代码随想录算法训练营第二天 | 977有序数组的平方、209长度最小的子数组、59螺旋矩阵Ⅱ

注意:可以通过Integer.MAX_VALUE设置最大值,如果通过三目运算符判断,如果仍然是Integer.MAX_VALUE,则返回0,否则返回res,这样可以避免多用for循环计算总的数组内元素和。思路:使用双指针的解法,定义两个指针,分别指向原数组的起始和末尾位置,每次比较两个指针对应位置的平方值,选择较大的逆序放入新数组的末尾位置。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。所谓滑动窗口,就是不断调整子序列的起始位置和终止位置,从而得到我们想要的结果。

2023-06-08 10:32:43 191 1

原创 代码随想录算法训练营第一天 | 704二分查找、27移除元素

解题思路:弄清楚二分法的核心思想,明确区间的定义(左闭右闭or左闭右开),视为不变量,进而确定while()循环条件是否需要带等号和if()条件判断后区间边界的赋值。区别:数组中元素会有重复,需要找到起始和终止target的位置,可以先找到>=target的第一个位置,再找target和target+1起始位置。区别:target不一定在原数组中,最后不满足while(left <= right)时,即left>right时,返回的是应该是left或者是right+1。慢指针:指向更新 新数组下标的位置。

2023-06-07 22:35:44 223

原创 java系统如何默认让用户第一次登录时修改密码,而第二次后登录则不要求

java系统实现用户第一次登录时修改密码,而第二次后登录则不要求

2023-03-07 16:35:57 1819 1

空空如也

空空如也

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

TA关注的人

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