自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录训练营第十天| 232.用栈实现队列 · 225. 用队列实现栈 · 20. 有效的括号 · 1047. 删除字符串中的所有相邻重复项

栈提供push和pop等等接口,所有元素必须符合先进先出规则,所以栈不提供走访功能,也不提供迭代器(iterator)队列是先进先出的数据结构,也不允许有遍历行为,不提供迭代器。

2024-06-19 11:16:09 536

原创 代码随想录第九天|●151.翻转字符串里的单词●卡码网:55.右旋转字符串

给你一个字符串s,请你反转字符串中的顺序。是由非空格字符组成的字符串。s中使用至少一个空格将字符串中的分隔开。返回顺序颠倒且之间用单个空格连接的结果字符串。输入字符串s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。s = "反转后的字符串中不能存在前导空格和尾随空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。本题需要将单词的顺序颠倒过来,但单词内部的字母顺序是不变的。

2024-06-18 11:58:21 307

原创 代码随想录算法训练营第八天| ● 344.反转字符串● 541. 反转字符串II● 卡码网:54.替换数字

首先,每次指针的移动为2k个字符,所以定义i=0,每次循环,i+=2k,然后在前k个字符里进行第二次循环,交换首尾指针的位置,但是我忽略掉了i+=2k大于字符串长度的情况,而且可以直接使用reverse函数进行字符串的反转,不需要再次遍历,只需要弄清字符串的首尾位置。怎么判断字符串中的数字?刚开始想着从前往后遍历,当字符小于‘9’且大于‘0’时,说明当前字符为数字,然后从当前位置进行number的替换,但这样后续的字符需要全部后移,字符串长度也要增加,每遍历到一个数字,都要进行这样的操作,非常麻烦。

2024-06-16 17:23:09 673

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

本题需要找到满足于A[i] + B[j] + C[k] + D[m]=0的组合数,即A[i] + B[j] = -(C[k] + D[m]),所以我们可以求出数组A和数组B的元素之和,存在哈希表中,然后在哈希表中查找是否存在-(C[k] + D[m])。给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。

2024-06-15 16:24:16 272

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

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1: 输入: s = "anagram", t = "nagaram" 输出: true示例 2: 输入: s = "rat", t = "car" 输出: false你可以假设字符串只包含小写字母。先回想一下,什么情况下要使用哈希表?就要考虑哈希法结合本题,我们只需要判断在s字符串中出现的字母同样出现在了t字符串中,且出现次数相同,所以我们需要设置一个哈希表来记录s字符串中字母出现的次数。

2024-06-14 15:26:42 830

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

这里需要设置一个虚拟头节点指向head,为了不改变虚拟头结点的位置,我们增加了一个cur,方便移动,cur->next=head,假设交换节点1和节点2的位置,需要先使得cur指向节点2,再使得节点2指向节点1,因此有cur->next = cur->next->next,cur->next->next = cur->next。同理,当想要节点1指向节点3时,节点3的位置也已经被改变了,所以要先增加变量temp=cur->next->next->next,保存节点3的原始位置。如果两个链表没有交点,返回。

2024-06-13 11:06:30 784

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

和上面相似,但是需要将cur移动到末尾,并指向新建节点。_size++;在链表中的第 index 个节点之前添加值为 val 的节点如果 index 等于链表的长度,则该节点将附加到链表的末尾。如果 index 大于链表长度,则不会插入节点。如果index小于0,则在头部插入节点。_size++;这里需要考虑index的大小,若超过链表的最大索引或者小于0,都需要另外处理,通过index--将cur移动到需要插入的位置,令新建节点指向cur->next,cur则指向新建节点。

2024-06-12 20:19:09 899

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

另一种是利用之前相加的结果,由于原数组为正数数组,当刚好找到符合条件的子数组时,将最前面的元素减去,同时索引右移,i++,加上i=j后的元素,进行下一轮的条件循环判断,这样就能减少计算量。这里用到了滑动窗口的思想,可以理解为两个指针的移动,其中一个是不变的,另一个是变化的,当达到某个条件的时候,将不变的指针进行移动,这样窗口的长度是能够更新变化的。最朴实无华的做法,就是将数组内的所有元素先进行平方,然后使用sort函数将数组元素排序,但时间复杂度较大,下面使用双指针的思想来解决这道题。

2024-06-11 22:43:21 654

原创 代码随想录算法训练营第一天 27. 移除元素

你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你在返回的 k 个元素之外留下了什么并不重要(因此它们并不计入评测)。你的函数函数应该返回 k = 2, 并且 nums。元素的顺序可能发生改变。注意这五个元素可以任意顺序返回。中的前两个元素均为 2。

2024-06-05 16:01:04 186

原创 代码随想录算法训练营第一天| 704. 二分查找,35.搜索插入位置 和 34. 在排序数组中查找元素的第一个和最后一个位置

先把 704写熟练,要熟悉 根据 左闭右开,左闭右闭 两种区间规则 写出来的二分法。

2024-06-05 15:39:12 933

原创 leetcode刷题(3)链表

分别求出两个链表的长度,使用while()循环得到lenA和lenB求出二者长度的插值gap,并将lenA为更大的值,如果本身不是,则调换lenA和lenB,curA和curB,这里需要用到swap函数将curA移动到和curB的长度相同的位置,这里需要用到gap遍历curA和curB,直到找到二者相同的位置,说明相交,否则遍历结束后,返回null。

2024-05-14 14:59:58 135

原创 leetcode刷题记录day1(2)

首先需要将链表分割成两个子链表,所以要找出链表的中点。这里使用快慢指针fast和slow,fast从head开始每次移动两步,slow从head开始每次移动一步,直到fast移动到尾节点时,slow刚好移动到链表的中点位置。分成两个子链表后分别进行排序,然后将排序后的子链表合并。上述过程使用递归实现。代码里面说明只要fast没有移动到尾节点的位置,就需要再移动一次。

2023-11-30 17:48:56 374

原创 leetcode刷题记录day1

第三种情况:二者都不为空,这个时候要判断list1和list2哪个头节点的值更小,然后通过递归决定下一个添加的节点,直到两个链表有一个为空。这道题已经说明了升序,所以链表的节点数值是从大到小排列的,只需要挨个比较对应位置的val大小。第一种情况:假如list1为空,那么直接return list2。第二种情况:假如list2为空,直接返回list1。#合并两个有序链表#

2023-11-30 17:34:50 298

原创 ERROR: Could not find a version that satisfies the requirement timm (from versions: none)ERROR: No

1、第一反应是pip的版本问题,于是python -m pip install --upgrade pip。已经是最新版本了,然后重新pip install timm,发现还是。2、重新考虑换一个pip源,于是。复现代码过程中出现的包错误。

2023-08-10 13:35:11 832 1

原创 基于51单片机的智能计算器

        其实,说智能也不算智能,就是在计算器上加上了日历、时钟和温度显示而已。具体用到的也是51很基础的模块,一个键盘,一个1602,温度显示那块用到了DS18B20,硬件调试的部分也很少,主要是代码的书写。功能简介:1、打开电源时,显示欢迎字样2、计算器功能3、日历及时钟功能4、温度实时测量然后用代码依次实现各个功能刚开始只用矩阵键盘来控制计算器的时候是很简单...

2018-09-16 21:53:58 3990 2

空空如也

空空如也

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

TA关注的人

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