![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法训练
文章平均质量分 84
HY1018LY
这个作者很懒,什么都没留下…
展开
-
代码随想录算法训练营day5|**242.有效的字母异位词** ; **349. 两个数组的交集** ; **202. 快乐数** ;**1. 两数之和**
首先编写一个函数【get_sum】用于计算每位的平方和,同时用一个vector存储函数的返回值,如果遇到的值是从未出现过的,就把它存入vector里,如果曾经出现过,就说明这个数不是【快乐数】,不管计算多少次,都会再次回到这个数,只有当【get_sum】返回的sum值等于1时,才返回true。解题思路:我的办法是比较笨的方法,直接创建两个hash表,分别记录s和t中每个字符出现的次数,然后再对s或t出现的字符进行判断,看它在两个字符串中出现的次数是否一致。整数,并返回它们的数组下标。在遍历字符串s的时候,原创 2023-12-06 21:05:13 · 783 阅读 · 1 评论 -
代码随想录算法训练营第四天|24. 两两交换链表中的节点 ;19.删除链表的倒数第N个节点 ; 面试题 02.07. 链表相交 ;142.环形链表II
首先我们需要知道,【怎么判断环的存在】,可以利用快慢指针,两个指针从同一节点出发,快指针每次走两个节点,慢指针每次走一个节点,如果存在环,快指针一定会先于慢指针进入环,当慢指针也进入环时,慢指针和快指针之间的关系相当于,慢指针“静止“,快指针一步一步接近慢指针,【因为慢指针一次走一步,快指针一次走两步】,所以如果存在环,他们一定会相遇。理解了思路,代码就好写了。解题思路:看到这个题解我才发现我偷懒了,我只是交换节点值 ,没有交换节点,嘻嘻~,这个解法没有什么难理解的技巧,按照步骤操作就行,可按下图来进行。原创 2023-12-05 19:47:06 · 860 阅读 · 0 评论 -
代码随想录算法训练营第三天|**203.移除链表元素** ;**707.设计链表** ;**206.反转链表**
解题思路:首先为链表增加一个虚拟的头节点(为了统一列表元素的操作方式,如果不增加,删除链表中间节点的操作与删除第一个节点操作会不一致),设置前后指针,【前指针front】指向虚拟头节点,【后指针after】指向链表的第一个节点,当链表为空时,直接返回虚拟头节点的下一节点,即真正的头节点。当链表不为空时,检查after指向的当前节点值val是否为需要删除的值,如果需要删除,首先将前指针的next属性指向ater的next,即删除操作,然后将ater移动到next,继续搜索需要删除的节点。原创 2023-12-02 12:56:19 · 769 阅读 · 0 评论 -
代码随想录算法训练营第二天|977.有序数组的平方, 209.长度最小的子数组,59.螺旋矩阵II
需要写四个for循环,第一个循环负责【顶行】的从左至右填充,第二个循环负责【右列】的从上至下填充,第三个循环负责【底行】的从右至左填充,第四个循环负责从下至上的【左列】填充,填充的数字用【num++】来控制,因为矩阵可能有多层,填充完外层,我们就需要进入内层,可以使用【变量k】来控制填充的层数(从外向内填充),最后还需要特别注意的是。解题思路:没有想到特别好的解法,就采用了暴力解法,首先将数组的每个元素平方,然后对数组的元素进行【快速排序】算法,在快排之前先用了冒泡排序,但超时了。[滑动窗口法解析](原创 2023-12-01 11:11:07 · 912 阅读 · 0 评论 -
代码随想录算法训练营day1:数组
算法,c++原创 2023-11-29 13:23:48 · 507 阅读 · 0 评论