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

原创 代码随想录算法训练Day09|151.翻转字符串里的单词、卡码网:55.右旋转字符串

基本思路:第一步:先消除头尾空格,以及中间多余的空格(逻辑:fast指针和fast-1指针都是空格则跳过本轮循环 && fast指针大于0时,因为fast从头开始,经过删除后头一定不是空格,所以指向0时不用判断是否为连续空格);第二步:字符串全部反转;第三步:单词反转(负负得正了。第一步整体反转,第二步找到前n个数字,因为要反转后n个数字,但是因为整体反转后,移到左侧了,即前n个数字。几个没用过的API,sb.setCharAt(index,element).沿用上一题的思路:先整体反转,再局部反转。

2024-08-08 20:37:33 76

原创 代码随想录算法训练营Day7|454.四数相加II、15. 三数之和 、18. 四数之和

如果恰好等于0,将三元组添加到结果列表当中,并且判断左右指针即将移向的下一位是否和当前位置相等,如果相等,则跳过下一位(因为三元组不能重复,该步骤为了去重,此处用while不用if),最后将左右指针继续移向下一位,判断还有不同的三元组等于0。在三数之和基础上套一层for循环,注意两个事情:一个是排序完之后,如果当前元素大于零,并且当前元素大于目标值,则说明后续不可能相加小于目标数字。然后后两个数组仍然用全排列相加,取相反数,在map表中查询有没有对应的数,有则count增加对应的value值。

2024-08-07 23:04:13 190

原创 代码随想录算法训练营Day08|344.反转字符串、541. 反转字符串II、54.替换数字

把原来字符串放进去,创建两个指针,一个指向原来长度末尾,一个指向数组末尾。从后往前遍历和填字符,碰到字母填入该字母,碰到数字填入“number”。思路:先把字符串转换成字符数组。遍历数组,每次跨越2k个处理区间。然后判断起始和终止节点。每次跨越2k个区间,不用i++,用i+=2k;charAt返回的是字符,不能用来做异或操作。基本思路:遍历数组,每遇到一个数字就让长度计数器加5,然后用改该长度创建数组。思路:两个指针指向头尾,交换,不断向中间移动。

2024-08-07 19:38:36 169

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

因此,重复出现的数一定不是快乐树,不会重复出现的一定是快乐数。当数字不等于1,并且没有出现过该数字时,把每次得到的数加入set表中,直到得到一或者出现重复。第一个数组加入set1表,然后用第二个数组去set1里去查,有的话加入set2里。null应该是没有指向堆里的空间,0至少堆里有数组的一些属性值。思路是遍历整个数组:如果没有出现需要的差值就添加进哈希表中,如果出现了就返回需要的下标。java的字符串的长度是length()是方法不是属性。遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。

2024-08-06 13:53:45 268

原创 算法随想录代码训练营Day04|24. 两两交换链表中的节点、●19.删除链表的倒数第N个节点 、面试题 02.07. 链表相交、142.环形链表II

24. 两两交换链表中的节点用虚拟头结点。循环时需要把第一个和下一轮循环的第一个用临时节点保存下来,第二个不用因为首次修改指针就指向了第二个节点。然后依次对next进行赋值。循环条件是在下两个操作数之前,对cur指针的next和next.next判空。注意顺序,如果next已经为空,再访问next.next会报空指针异常。自己有一个细节没有注意到是,返回的时候不要返回head节点,因为,head节点已经指向了整个链表的第二个节点,所以是不完整的链表。除非原来链表是空链表或者只有一个节点,否则都会报错。

2024-08-04 20:57:34 259

原创 代码随想录算法训练营Day3|203.移除链表元素、707.设计链表、206.反转链表

使用虚拟头节点,注意给ListNode添加空参构造,不然力扣不会自动添加。使用虚拟头节点,添加元素可以让头插法和尾插法直接调用添加元素的操作。不用虚拟头节点的,判断头节点时候用的时真的head指针而不是cur指针。双指针解法,注意要用temp临时存储节点,防止找不到。两种写法,有虚拟头节点的能让删除操作统一。203.移除链表元素。

2024-08-02 21:30:59 107

原创 代码随想录算法训练营| 209.长度最小的子数组、59.螺旋矩阵II

滑动窗口解法,滑动窗口有点像能吃能拉的贪吃蛇,j指针是头,i指针是尾。核心思想在于构造一个由左右指针组成的窗口,并根据问题的需求不断调整窗口的大小和位置。用圈数loop来判断循环条件,直接用n判断一直没调通,其实常数级的内存量多用几个没关系。注意循环不变量,每次都不判断边界最后一个元素,留给下一次循环作为开头判断。为什么能用滑动窗口:分析的对象是一段连续的区间。

2024-08-01 21:39:23 206

原创 代码随想录算法训练营Day1|704. 二分查找、27. 移除元素、977.有序数组的平方

left,right]写法:while的循环条件可以取等,因为left=right可以取到。(nums[mid] < target)时,left = mid+1,nums[mid]已经判断过了不是要找的值,(left是闭区间)下一轮还要取到left的值来判断,left不能取已经判断过的;(target < nums[mid])时,right = mid - 1,nums[mid]已经判断过了不是要找的值,(right是闭区间)下一轮还要取到right的值来判断,right不能取已经判断过的。

2024-07-31 22:46:51 415 1

空空如也

空空如也

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

TA关注的人

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