
算法题
寂静丿星空
一名普通的职场人
展开
-
(LeetCode)1450. 在既定时间做作业的学生人数
LeetCode第1450题原创 2022-08-19 09:02:07 · 468 阅读 · 0 评论 -
(LeetCode)283. 移动零
(LeetCode)283. 移动零原创 2022-07-06 10:14:11 · 248 阅读 · 0 评论 -
(LeetCode)231. 2 的幂
(LeetCode)231. 2 的幂原创 2022-07-06 10:12:14 · 305 阅读 · 0 评论 -
(LeetCode)228. 汇总区间
(LeetCode)228. 汇总区间原创 2022-07-06 10:09:37 · 149 阅读 · 0 评论 -
LeetCode算法题268:缺失数字
这是一道简单题,但是做法很多,有一个算法还涉及到了数学知识,这里给大家分享一下。题目描述如下:给定一个包含 0, 1, 2, ..., n中n个数的序列,找出 0 .. n中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明:你的算法应具有线性时间复杂度。你能否仅使用额外常...原创 2020-01-06 13:22:32 · 403 阅读 · 0 评论 -
LeetCode算法题:相交链表
题目描述如下:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3输出:Reference of the node with value = 8输入解释:...原创 2019-10-21 00:24:42 · 229 阅读 · 0 评论 -
LeetCode算法题:环形链表II
题目描述如下:给定一个链表,返回链表开始入环的第一个节点。如果链表无环,则返回null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to nod...原创 2019-10-19 21:36:34 · 210 阅读 · 0 评论 -
LeetCode算法题:循环链表
题目描述如下:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例2:输入:head = [1,2], ...原创 2019-10-19 00:27:08 · 511 阅读 · 0 评论 -
LeetCode算法题:寻找重复数
题目描述如下:给定一个包含n + 1 个整数的数组nums,其数字都在 1 到 n之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复...原创 2019-10-17 23:13:28 · 603 阅读 · 0 评论 -
LeetCode算法题:删除排序数组中的重复项II
题目描述如下:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考...原创 2019-10-16 23:13:08 · 266 阅读 · 1 评论 -
LeetCode算法题:子集
题目描述如下:给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]这是一道比较简单的题目,有很多种方法做,这里只介绍迭代法。Python...原创 2019-10-12 18:50:17 · 204 阅读 · 0 评论 -
LeetCode算法题:搜索二维矩阵
LeetCode题库里把这道题标记为中等难度,但是做起来很简单,就是按照两步搜索就好。题目描述如下:编写一个高效的算法来判断m x n矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20],...原创 2019-10-04 15:15:30 · 255 阅读 · 0 评论 -
LeetCode算法题:34. 在排序数组中查找元素的第一个和最后一个位置
题目描述如下:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(log n) 级别。如果数组中不存在目标值,返回[-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例2:输入: nums = [5,7,7...原创 2019-07-24 20:38:54 · 319 阅读 · 0 评论 -
LeetCode算法题:二进制求和
一道简单的算法题,题目描述如下:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字1和0。示例1:输入: a = "11", b = "1"输出: "100"示例2:输入: a = "1010", b = "1011"输出: "10101"这道题用暴力法思路很简单,但是写起来很麻烦。二进制大家都知道如何计算,也知道如何进位,我们...原创 2019-07-19 00:06:50 · 281 阅读 · 0 评论 -
LeetCode算法题:合并区间
题目描述如下:给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] ...原创 2019-06-02 16:11:46 · 824 阅读 · 0 评论 -
LeetCode算法题:最接近三数之和
题目描述如下:给定一个包括n个整数的数组nums和 一个目标值target。找出nums中的三个整数,使得它们的和与target最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 这道题...原创 2019-05-28 23:26:27 · 335 阅读 · 0 评论 -
LeetCode算法题:盛最多水的容器
题目描述如下:给定n个非负整数a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画n条垂直线,垂直线i的两个端点分别为(i,ai) 和 (i, 0)。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且n的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下...原创 2019-05-20 00:11:20 · 310 阅读 · 0 评论 -
《数据结构与算法》编程题:斐波那契数列
题目描述如下:分治策略是算法设计的重要策略之一,该策略的基本思想是把问题进行分解成一些子问题,通过子问题的求解完成对原问题的求解。其关键是分解和合并,好的分解或合并方法才会产生高效的分治算法。 分治策略设计出的算法最常见的就是递归算法。但是如果在分解时,分解出的子问题有很多是重复的,那么这样的分治(递归)算法求解问题的效率就非常低。例如斐波那契数问题,如果采用递归求解,...原创 2019-05-20 00:28:42 · 1840 阅读 · 1 评论 -
LeetCode算法题:两数之和
题目描述:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...原创 2019-05-10 12:39:55 · 157 阅读 · 0 评论 -
LeetCode算法题:整数反转
题目描述:给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−2^31, 2^31− 1]。请根据这个假设,如果反转后整数溢出那...原创 2019-05-10 12:55:02 · 256 阅读 · 1 评论 -
LeetCode算法题:回文数
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此...原创 2019-05-10 19:45:33 · 253 阅读 · 0 评论 -
LeetCode算法题:最长公共前缀
题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入: ["flower","flow","flight"]输出: "fl"示例2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母a-z。思路:借用LeetC...原创 2019-05-10 19:55:04 · 406 阅读 · 0 评论 -
《数据结构与算法》练习题:堆栈ADT实现及应用
题目描述如下:假设栈ADT的数据元素为整数,栈ADT的实现采用顺序存储结构。现要用栈来辅助完成任意非负十进制整数到Base(Base不大于35)进制的转换。部分代码已经给出,请补充完善栈溢出处理函数和主函数。 注意:只提交需要补充的函数,其他代码不允许自己重写和修改。栈溢出处理函数overflowProcess:当栈满时,将栈的空间在原来基础上扩大1倍。主函数: 输入一个非负十进制整...原创 2019-05-20 20:29:57 · 1412 阅读 · 0 评论 -
LeetCode算法题:两两交换链表中的节点
题目描述如下:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3. 这道题有很多种思路,我用的思路是将链表按照要求分成两个链表,最后合并在一起,如题head:1->2->3...原创 2019-05-15 23:42:54 · 491 阅读 · 0 评论 -
LeetCode算法题:两数相加
题目描述如下:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 ...原创 2019-05-11 21:56:04 · 263 阅读 · 0 评论 -
LeetCode算法题:无重复字符的最长字串
题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为...原创 2019-05-13 00:00:34 · 280 阅读 · 0 评论 -
LeetCode算法题:字符串转换整数(atoi)
题目描述如下:请你来实现一个atoi函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余...原创 2019-05-27 21:26:57 · 270 阅读 · 1 评论 -
LeetCode算法题:颜色分类
题目描述如下:给定一个包含红色、白色和蓝色,一共n个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2] 这道题有很多种做法,一种是直...原创 2019-05-23 20:22:00 · 698 阅读 · 0 评论 -
LeetCode算法题:删除链表的倒数第N个节点
题目描述如下:给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的n保证是有效的。 这道题暴力法的思路很简单,即遍历两遍链表,第一遍统计出链表的节点数(设为L...原创 2019-05-14 19:15:44 · 418 阅读 · 0 评论