LeetCode
Z_ikCoffee
The worst feeling ever is not knowing whether you should wait or give up.
展开
-
LeetCode:35、搜索插入位置
题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。示例:示例1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例3:输入: [1,3,5,6], 7输出: 4示例4:输入: [1,3,5,6], 0输出: 0解题思路:遍历整个数组与目标值比较输出满足条件的值对应的...原创 2018-07-09 17:46:20 · 219 阅读 · 0 评论 -
LeetCode:172、阶乘后的零
题目描述:给定一个整数 n,返回 n! 结果尾数中零的数量。示例:示例1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.解题思路:列出所有5的倍数发现了规律,所有5的倍数会添加一个0,所有5^2的倍数会比5的倍数多添加一个0。1×5 → 5! → 1个02×5...原创 2018-07-18 16:50:16 · 395 阅读 · 0 评论 -
LeetCode:171、Excel表列序号
题目描述:给定一个Excel表格中的列名称,返回其相应的列序号。例如:A -> 1B -> 2C -> 3 ...Z -> 26AA -> 27AB -> 28 ...示例:示例1:输入: "A"输出: 1示例2:输入: "AB"输出: 28示例3:输入: "ZY"输出: 701解题思路:相..原创 2018-07-18 17:26:37 · 467 阅读 · 0 评论 -
LeetCode:104、二叉树的最大深度
题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7解题思路:二叉树的高度等于二叉树左子树的最大高度与二叉树右子树的最大高度的最大值加1....原创 2018-07-18 17:49:17 · 166 阅读 · 0 评论 -
LeetCode:162、寻找峰值
题目描述:峰值元素是指其值大于左右相邻值的元素。给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。你可以假设 nums[-1] = nums[n] = -∞。示例:示例1:输入: nums = [1,2,3,1]输出: 2解释: 3 是峰值元素,你的函...原创 2018-07-25 15:01:06 · 1410 阅读 · 0 评论 -
LeetCode:153、寻找旋转排序数组中的最小值
题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [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解题思路:最笨的方法就是将数组...原创 2018-07-20 14:39:06 · 487 阅读 · 1 评论 -
LeetCode:168、Excel表列名称
题目描述:给定一个正整数,返回它在 Excel 表中相对应的列名称。例如: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ...示例:示例1:输入: 1输出: "A"示例2:输入: 28输出: "AB"...原创 2018-07-20 15:23:55 · 312 阅读 · 0 评论 -
LeetCode:164、最大间距
题目描述:给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例:示例1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。解题思路...原创 2018-07-26 15:11:00 · 523 阅读 · 0 评论 -
LeetCode:154、寻找旋转排序数组中的最小值 II
题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。示例:示例1:输入: [1,3,5]输出: 1示例2:输入: [2,2,2,0,1]输出: 0解题思路:思路1:最笨的方法就是遍历一遍数组后...原创 2018-07-21 17:12:36 · 160 阅读 · 0 评论 -
LeetCode:258、各位相加
题目描述:给定一个非负整数num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。解题思路:输入的数为非负数,当输入的数为个位数的时候不用叠加直接输出AC代码1:int addDigits(int num) { int result = 0; //...原创 2018-07-05 11:07:37 · 258 阅读 · 0 评论 -
LeetCode:83、删除排序链表中的重复元素
题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例:示例1:输入: 1->1->2输出: 1->2示例2:输入: 1->1->2->3->3输出: 1->2->3解题思路:直接判断下个节点的val是否与当前节点相同,相同则删除,不同则将向后移。AC代码:/** * Def...原创 2018-07-23 16:16:28 · 194 阅读 · 0 评论 -
LeetCode:27、移除元素
题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例:示例1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个...原创 2018-07-16 14:43:46 · 144 阅读 · 0 评论 -
LeetCode:88、合并两个有序数组
题目描述:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,...原创 2018-07-16 15:39:41 · 142 阅读 · 0 评论 -
LeetCode:13、罗马数字转整数
题目描述:罗马数字包含以下七种字符:I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。...原创 2018-07-10 15:26:43 · 185 阅读 · 0 评论 -
LeetCode:1、两数之和
题目描述:给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题思路:使用穷举法,即将两数相加,穷举所有数进行对比,时间复杂度O(n^n)。AC代码:int*...原创 2018-07-04 14:11:06 · 126 阅读 · 0 评论 -
LeetCode:9、回文数
题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例:示例1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。解题思路:用变量存放...原创 2018-07-04 15:08:03 · 170 阅读 · 0 评论 -
LeetCode:202、快乐数
题目描述:编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例:输入: 19输出: true解释: 1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2 = 1001^2 + 0...原创 2018-07-04 15:37:24 · 128 阅读 · 0 评论 -
LeetCode:169、求众数
题目描述:给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例:示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2解题思路:思路1:使用排序的方式将数组中的所有数进行排序操作后再数列中间(n/2)的数就是绝对众...原创 2018-07-23 11:39:36 · 717 阅读 · 0 评论 -
LeetCode:100、相同的树
题目描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例:示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例2:输入: ...原创 2018-07-23 15:15:10 · 164 阅读 · 0 评论 -
LeetCode:80、删除排序数组中的重复项 II
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。实例:实例1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需...原创 2018-09-18 21:05:20 · 285 阅读 · 0 评论