
剑指offer每日刷题
俄式追逐者
菜的抠脚的研究生
展开
-
连续子数组的最大和———算法刷题Day4———2021.3.29
题目名称:连续子数组的最大和 将输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 例如: 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 问题描述: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 热度指数:88878 本题知识点:动态规划 代码分析: 在此代码中,我们使用的方法是动态规划,原创 2021-03-29 13:21:59 · 231 阅读 · 0 评论 -
2021.3.29删除链表中的节点———算法刷题Day4
题目名称:删除链表中的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 问题描述: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 热度指数:66631 本题知识点: 排序 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2:原创 2021-03-29 11:51:00 · 350 阅读 · 0 评论 -
合并两个有序链表———算法刷题Day4———2021.3.29
题目名称:合并两个有序链表 将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的,且合并后新链表依然有序。 例如: 输入{1},{2} 输出{1,2} 问题描述: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 热度指数:88878 本题知识点: 链表 代码分析: 在此代码中,我们使用的方法是迭代法,思路是创建一个新的链表,我们把它定义为ListNode。设定该链表表头val为0。该位置定义为当前位置cur。然后再同时定义为原创 2021-03-29 10:11:34 · 229 阅读 · 0 评论 -
判断链表是否有环------算法刷题Day3———2021.3.28
题目名称:判断链表是否有环 判断给定的链表中是否有环。如果有环则返回true,否则返回false。 你能给出空间复杂度O(1)的解法么? 问题描述: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言256M 热度指数:169443 本题知识点: 链表 思路1分析: 此题中,可以有两种解法。第一种解法可以先创立一个空的集合。遍历链表,把经过的数都放入该集合中,如果遍历到某个节点时,发现与该集合中出现了重复。则说明链表有环。若遍历完之后都没有发现与集合中出现重复。则原创 2021-03-28 15:14:16 · 124 阅读 · 0 评论 -
2021.3.27链表反转———算法刷题Day2
题目名称:链表反转 输入一个链表,反转链表后,输出新链表的表头。 例如: 例如:输入:{1,2,3} 返回值:{3,2,1} 问题描述: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 热度指数:1093254 本题知识点: 数组 哈希 代码分析: 此题目较为抽象。我们用图的方式来辅助理解。 如上图所示,从最上面开始看,以链表1->2->3->4->5为例。我们首先定义pHead(表头位置)为cur。在pHead的前一个位置为pr原创 2021-03-27 17:11:21 · 124 阅读 · 0 评论 -
算法刷题Day1———2021.3.26两数之和
题目名称:两数之和 给定一个数组,请你编写一个函数,返回该数组排序后的形式。 例如: 给出一个整数数组,请在数组中找出两个加起来等于目标值的数, 你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index2.。注意:下标是从1开始的 假设给出的数组中只存在唯一解 例如: 给出的数组为 {20, 70, 110, 150},目标值为90 输出 index1=1, index2=2 例如:输入:[3,2,4],6 返回值:[2,3] 问题描述:原创 2021-03-26 18:09:45 · 323 阅读 · 0 评论 -
算法刷题Day1———2021.3.26最小的K个数字
题目名称:最小的K个数字 给定一个数组,找出其中最小的K个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。如果K>数组的长度,那么返回一个空的数组 例如: 输入[4,5,1,6,2,7,3,8],4 输出[1,2,3,4] 问题描述: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 热度指数:66631 本题知识点: 排序 代码分析: 在此代码中,所使用的方法首先判断数组的长度与k的大小关系,若k大于原创 2021-03-26 15:27:04 · 104 阅读 · 0 评论 -
算法刷题Day1———2021.3.26排序
题目名称:排序 给定一个数组,请你编写一个函数,返回该数组排序后的形式。 例如: 输入[5,2,3,1,4]) 输出[1,2,3,4,5] 问题描述: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 热度指数:66631 本题知识点: 排序 代码分析: 在此代码中,所使用的方法为快速排序。在此排序算法中,一共定义了两个函数。分别是quick_sort()和Mysort().其中,主函数部分为Mysort(),使用Mysort()调用quick_sort原创 2021-03-26 15:15:35 · 215 阅读 · 3 评论