LeetCode
学习带师
这个作者很懒,什么都没留下…
展开
-
LeetCode88之合并二个有序数组
题目:给你两个有序整数数组nums1 和 nums2,请你将 nums2 合并到nums1中,使 nums1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n 。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素题目已经给提示了,数组这种操作一般都是在数组后面,因为为O(1),思路跟链表...原创 2020-05-06 08:20:05 · 127 阅读 · 0 评论 -
LeetCode905奇偶排序数组
题目:给定一个非负整数数组 A,返回一个数组,在该数组中,A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。思路一:二遍扫描,第一遍先放偶数,第二遍放奇数,public int[] sort...原创 2019-12-07 09:49:47 · 68 阅读 · 0 评论 -
LeetCode169找出数组中大于一半的数
题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2思路一:对数组进行排序,排完序后的数组的中间位置一定是大于N/2的数思路二:遍历数组,用一个...原创 2019-12-02 09:15:01 · 223 阅读 · 0 评论 -
LeetCode19删除链表的倒数第n个节点
题目:给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。思路:链表操作一般边界不好处理,所以常常需要添加一个额外的节点来完成相应的功能用二个指针fast...原创 2019-11-03 10:48:58 · 65 阅读 · 0 评论 -
LeetCode167二数之和II
题目:给定一个已按照升序排列的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1必须小于index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11, ...原创 2019-11-03 09:37:22 · 86 阅读 · 0 评论 -
LeetCode153旋转数组的最小数字
题目:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组[0,1,2,4,5,6,7] 可能变为[4,5,6,7,0,1,2])。请找出其中最小的元素。你可以假设数组中不存在重复元素。示例 1:输入: [3,4,5,1,2]输出: 1示例 2:输入: [4,5,6,7,0,1,2]输出: 0思路:这道题的关键是如何找到最小值所在的区...原创 2019-10-31 09:51:25 · 87 阅读 · 0 评论 -
LeetCode278第一个出现错误的版本
题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号 version 是...原创 2019-10-28 23:26:52 · 87 阅读 · 0 评论 -
LeetCode725对称二叉树(镜像对称二叉树)
题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3思路:判断一颗二叉树是否是对称的,得满足二个条件二棵树拥有一个相同的头节点 一棵树的左子树跟另一颗树的右子树对称public boolean isSymmetric(TreeNode r...原创 2019-10-27 23:43:52 · 68 阅读 · 0 评论 -
LeetCode725大于给定元素的最小值
题目描述:给定一个有序的字符数组 letters 和一个字符 target,要求找出 letters 中大于 target 的最小字符,如果找不到就返回第 1 个字符Input:letters = ["c", "f", "j"]target = "d"Output: "f"Input:letters = ["c", "f", "j"]target = "k"Output: "...原创 2019-10-25 15:41:20 · 233 阅读 · 0 评论 -
LeetCode53最大子序列和
题目:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。思路:利用贪心的思想,如果我每次保证都得到最大值,那么到最后的值一定是最大值具体:二个变量preSum,maxSum前者表示之前的...原创 2019-10-21 09:26:01 · 104 阅读 · 0 评论 -
LeetCode605种植花朵
题目:假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数n。能否在不打破种植规则的情况下种入n朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n =...原创 2019-10-19 16:56:24 · 167 阅读 · 0 评论 -
LeetCode392判断子序列
题目:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例...原创 2019-10-19 09:59:16 · 157 阅读 · 0 评论 -
LeetCode435无重叠区间
题目:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。思路:先计算最多能组成的不重复区间个数,然后用区间总个数减去最多能组成的不重复区间的个数。在每次选择中,选择区间的结尾越小,留给后面区间的空间越大,因此将二维数组按区间结尾排序,得到区间结尾...原创 2019-10-09 10:39:38 · 106 阅读 · 0 评论 -
LeetCode650
题目:最初在一个记事本上只有一个字符 'A'。你每次可以对这个记事本进行两种操作:Copy All (复制全部) : 你可以复制这个记事本中的所有字符(部分的复制是不允许的)。Paste (粘贴) : 你可以粘贴你上一次复制的字符。给定一个数字n。你需要使用最少的操作次数,在记事本中打印出恰好n个 'A'。输出能够打印出n个 'A' 的最少操作次数。思路:可以转换为n...原创 2019-10-08 10:44:22 · 167 阅读 · 0 评论 -
算法面试真题和的连续子序列
题目:给定一数n,求所有和等于这个数的连续子序列打印出来,并计数,比如15=1+2+3+4+5=4+5+6=8+7思路:先定义变量min表示最小序列,max最大序列,sum为和1.如果和为n,则进行 sum=sum-min; min++,max++2.如果和大于n sum=sum-min min++3.和小于n...原创 2019-09-26 20:49:30 · 137 阅读 · 0 评论 -
LeetCode409最长回文串
题目:给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。思路:首先先统计每个字符串出现的次数,每个字符有偶数个可以用来构成回文字符串,再将单独的字符放在中间。对于每个字母假设出现了n次,可以让(n/2)*2个字母左右对称public...原创 2019-09-25 11:04:57 · 198 阅读 · 0 评论 -
LeetCode205字符串同构
题目:给定两个字符串s和t,判断它们是否是同构的。如果s中的字符可以被替换得到t,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身思路:给二个字符串中的元素一起记录位置,都是从0开始,正常情况下位置都是一样的,如果有一次不一样,说明之前已经出现过了。返回false,...原创 2019-09-25 10:53:03 · 100 阅读 · 0 评论 -
LeetCode725分割链表
题目:给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。返回一个符合上述规则的链表的列表。举例: 1->2->3->4, k = 5...原创 2019-09-22 11:07:02 · 198 阅读 · 0 评论