- 博客(28)
- 收藏
- 关注
原创 Ubuntu18.04安装MySQL5.7.29
解压压缩包 tar -xvf mysql-server_5.7.29-1ubuntu18.04_amd64.deb-bundle.tar。选择5.7.29版本 Ubuntu Linux系统 版本是18.04(64-bit)需要安装 sudo apt-get install libaio1。解压结束 会出现几个deb文件。下载第一个DEB Bundle。可以检查是否安装成功。
2024-06-04 14:18:38
1337
原创 Leetcode 21. 合并两个有序链表
解题方法:由于两个都是升序链表,所以可以开辟一个新的链表,然后同时遍历两个链表,比较链表元素的大小,将小的节点链接到新的链表中,最后,会存在一个链表先遍历完,然后将没有遍历完的链表全部放在新链表之后即可。新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。
2024-05-20 21:03:01
503
原创 Leetcode 876. 链表的中间结点
题目描述给你单链表的头结点head,请你找出并返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。[3,4,5]链表只有一个中间结点,值为 3。[4,5,6]该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。这题也是使用双指针方法(快慢指针)当快指针到达链表末尾时,慢指针正好指向链表的中间节点。NOTE:题目要求:「两个中间结点的时候,返回第二个中间结点」。快指针可以前进的条件是:当前快指针和当前快指针的下一个结点都非空。
2024-05-20 20:56:32
398
原创 Leetcode 面试题 02.01. 移除重复节点
双指针方法,定义两个指针cur与p来逐个遍历链表,cur元素依次和p比较,直到p为NULL,cur向后移动一个。编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。
2024-05-20 20:19:38
292
原创 Leetcode 面试题 02.07. 链表相交
在链表相交的问题中,当两个链表相交于某个节点,这意味着从那个交点开始,两个链表共享所有后续节点,形成了一个共同的尾部。从这个交点开始,不再是两条独立的链表,而是转变为一个共享的尾部。并且要注意,交点之后的节点是完全相同的,也就是说这个交点后,两个链表共用节点,也就变味了一个链表(所以也不会出现交点之后又分离的状态)从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]。从各自的表头开始算起,链表 A 为 [0,9,1,2,4],链表 B 为 [3,2,4]。
2024-05-13 21:59:42
592
原创 Leetcode 19. 删除链表的倒数第 N 个结点
给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。[1,2,3,5][][1]思路:使用双指针,因为要删除倒数第n个节点,就需要将一个指针,指向这个节点的前一个节点,可以在链表前定义虚拟头节点,这样使得删除节点操作统一,不需要区分是不是头节点;
2024-05-13 21:29:05
320
1
原创 Leetcode 24. 两两交换链表中的节点
如图所示我们需要交换1->2这两个节点 ,需要改变cur->next ,cur->next->next ,cur->next->next;我们可以想象为重新构造一个链表,那肯定分别要给cur->next ,cur->next->next ,cur->next->next赋值,这样循环 直到cur->next ,cur->next->next 不为空 因为要交换这两个节点,所以这两个节点不能为空。修改cur->next->next是因为本来是2->3 现在变为了1->3 所以也需要修改 最后变为2->1;
2024-05-09 21:30:12
320
原创 Leetcode 206. 反转链表
给你单链表的头节点head,请你反转链表,并返回反转后的链表。[2,1]head = [][]题目想要实现的效果 如图所示:之前链表的头节点是元素1, 反转之后头结点就是元素5 ,这里并没有添加或者删除节点,仅仅是改变next指针的方向。
2024-05-09 20:42:30
392
原创 Leetcode 203. 移除链表元素
首先,定义了一个结构体ListNode,其中包含了一个整型成员变量val和一个指向ListNode类型的指针成员变量next。在结构体内部,通过构造函数来初始化节点对象。构造函数接受一个整型参数x,用来初始化节点的val成员变量,同时将next指针初始化为NULL,表示当前节点为链表的末尾节点。通过结构体定义的方式完成了单链表节点的定义,可以使用ListNode类型来声明单链表的节点对象。// 单链表int val;// 节点上存储的元素// 指向下一个节点的指针。
2024-05-07 17:21:23
517
原创 Leetcode 674. 最长连续递增序列
给定一个未经排序的整数数组,找到最长且,并返回该序列的长度。可以由两个下标l和rl < r)确定,如果对于每个l <= i < r,都有,那么子序列就是连续递增子序列。3最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。1最长连续递增序列是 [2], 长度为1。
2024-05-06 20:52:04
326
原创 Leetcode 1287. 有序数组中出现次数超过25%的元素
给你一个非递减的整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。请你找到并返回这个整数6NOTE:在这里就相当于在一个数组中找出一个元素的出现次数大于总元素的25%;我们可以将这个数组的元素作为索引,出现次数作为数组值来构建一个新的数组,这就变成了在一个集合中快速判断一个元素是否出现-----使用哈希法。
2024-05-06 20:07:05
112
原创 Leetcode 219. 存在重复元素 II
给你一个整数数组nums和一个整数k,判断数组中是否存在两个i和j,满足且。如果存在,返回true;否则,返回false。= 3true1true2falseNOTE:题目要求判断是否存在两个不同的索引使得nums[i] == nums[j] 并且i与j的差值不大于K查看元素是否存在,使用哈希表;并且需要返回数组下标,不要求顺序,可以使用unordered_map效率更高;
2024-05-06 19:39:36
366
原创 Leetcode 268. 丢失的数字
给定一个包含[0, n]中n个数的数组nums,找出[0, n]这个范围内没有出现在数组中的那个数。2n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。2n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。8n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。
2024-05-03 16:40:50
427
1
原创 Leetcode LCR 178. 训练计划 VI
教学过程中,教练示范一次,学员跟做三次。该过程被混乱剪辑后,记录于数组actions,其中actions[i]表示做出该动作的人员编号。请返回教练的编号。71NOTE:某一个数字出现3次,那么他们的每一位的和分别可以被3整除。
2024-05-03 16:02:33
202
1
原创 Leetcode LCR 177. 撞色搭配
整数数组sockets记录了一个袜子礼盒的颜色分布情况,其中sockets[i]表示该袜子的颜色编号。礼盒中除了一款撞色搭配的袜子,每种颜色的袜子均有两只。请设计一个程序,在时间复杂度 O(n),空间复杂度O(1) 内找到这双撞色搭配袜子的两个颜色编号。[2,5] 或 [5,2][2,12] 或 [12,2]NOTE:题目要求时间复杂度 O(N) ,空间复杂度 O(1),因此首先排除和该题也就是说一个整型数组里除了两个数字之外,其他数字都出现了两次,请找出这两个只出现一次的数字。
2024-04-28 15:11:39
689
原创 Leetcode 88. 合并两个有序数组
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。,5,6] ,其中斜体加粗标注的为 nums1 中的元素。最终,合并后数组不应由函数返回,而是存储在数组。需要合并 [1,2,3] 和 [2,5,6]。都还有元素待合并时,比较两个数组当前位置的元素。数组中待填充位置的最后一个索引,初始化为。需要合并的数组是 [] 和 [1]。个元素表示应合并的元素,后。中,使合并后的数组同样按。中,使合并后的数组同样按。
2024-04-28 14:22:57
742
原创 Leetcode 922. 按奇偶排序数组 II
题目意思就是将一个整数数组按照偶数和奇数排序,使得偶数索引处填充偶数,奇数索引处填充奇数。[4,7,2,5],[2,5,4,7],[2,7,4,5] 也会被接受。数组中的元素按照题目要求的偶数索引放偶数、奇数索引放奇数的方式排列。用来分别存储偶数和奇数,大小都是原数组。中的每个元素,根据元素的奇偶性将其放入。,用来存储最终的结果,大小与原数组。任何满足上述条件的数组作为答案。中偶数和奇数的数量相等)。数组,按顺序将元素交替放入。对数组进行排序,以便当。大小的一半(因为假设数组。,并在每次放入后递增。
2024-04-28 10:27:00
251
原创 Leetcode 724. 寻找数组的中心下标
给你一个整数数组nums,请计算数组的。数组是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为0,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回的那一个。如果数组不存在中心下标,返回-1。3中心下标是 3。左侧数之和 sum = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11 ,
2024-04-25 21:22:57
416
1
原创 Leetcode 189. 轮转数组
NOTE:一定要加上k = k % n;// 确保k不超过数组长度,因为K有可能会大于数组长度。向右轮转 1 步: [99,-1,-100,3]向右轮转 2 步: [3,99,-1,-100],将数组中的元素向右轮转。
2024-04-25 20:40:01
417
1
原创 Leetcode 283. 移动零
给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。,必须在不复制数组的情况下原地对数组进行操作。nums =nums =[0][0]NOTE:这道题和27.移动元素很相似,这题是将0移动到数组最后;对于双指针法 可以看卡哥写的文章非常详细双指针法(快慢指针法):移除元素 就是快指针遇到要移除的元素,慢指针不动,快指针继续移动,将下一个元素覆盖掉前一个元素,就达到了移除元素的效果;
2024-04-25 20:03:11
461
2
原创 Leetcode 1207. 独一无二的出现次数
给你一个整数数组arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回true;否则返回false。
2024-04-25 19:35:35
244
1
原创 Leetcode 1365. 有多少小于当前数字的数字
给你一个数组nums,对于其中每个元素nums[i],请你统计数组中比它小的所有数字的数目。换而言之,对于每个nums[i]你必须计算出有效的j的数量,其中j满足j!= i。以数组形式返回答案。对于 nums[0]=8 存在四个比它小的数字:(1,2,2 和 3)。对于 nums[1]=1 不存在比它小的数字。对于 nums[2]=2 存在一个比它小的数字:(1)。对于 nums[3]=2 存在一个比它小的数字:(1)。对于 nums[4]=3 存在三个比它小的数字:(1,2 和 2)。
2024-04-24 21:27:05
239
原创 Leetcode 1002. 查找共用字符
给你一个字符串数组words,请你找出所有在words的每个字符串中都出现的共用字符(),并以数组形式返回。你可以按返回答案。["c","o"]NOTE:由words[i]由小写英文字母组成 ,返回的是公共字符,可以想到使用哈希法卡哥原话:这道题目一眼看上去,就是用哈希法,
2024-04-24 20:19:40
759
原创 Leetcode205. 同构字符串
给定两个字符串s和t,判断它们是否是同构的。如果s中的字符可以按某种映射关系替换得到t,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。s ="egg", t ="add"trues ="foo", t ="bar"falses ="paper", t ="title"truetNOTE1:字符串没有说都是小写字母之类的,所以用数组不合适了。
2024-04-24 16:47:42
598
原创 Leetcode 18. 四数之和
给你一个由n个整数组成的数组nums,和一个目标值target。请你找出并返回满足下述全部条件且的四元组bcd你可以按返回答案。NOTE1:这是从一个数组中 取出四个数 他们的和为target四数之和,和是一个思路,都是使用双指针法, 基本解法就是在的基础上再套一层for循环。这里就不能判断就返回了,三数之和 可以通过就返回了,因为 0 已经是确定的数了,四数之和这道题目 target是任意值。比如:数组是target是-10,不能因为-4 > -10而跳过。但是我们依旧可以去做剪枝,逻辑变成就可以了。
2024-04-23 20:17:35
1793
原创 Leetcode第15题. 三数之和
你可以提供自己的比较函数来定义不同的排序规则,比如降序排列或按特定标准排序。参数comp: 一个可调用的比较函数或者函数对象,它接受两个元素作为参数,返回一个bool值。当第一个参数应该排在第二个参数之前时,应返回true。// 降序排列// 使用自定义的比较函数return 0;
2024-04-22 22:00:23
1918
原创 Leetcode第202题. 快乐数
快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。NOTE1:需要注意的是,每个位置的平方和是一个循环的过程,如果出现1,就返回true,但是会可能无限循环,所以要判断如果出现重复的数就返回false。数值比较大,且不是(Key,value),选择使用set,且没有顺序要求,使用unordered_set。如果 n 是快乐数就返回 True;
2024-04-22 19:29:25
424
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人