Leetcode
桔兮
女程序媛一枚,各位大佬多多指教
展开
-
Leetcode 101. Symmetric Tree(Python)【Easy】
题目:Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree[1,2,2,3,4,4,3]is symmetric: 1 / \ 2 2 / \ / \3 4 4 ...原创 2018-07-17 08:47:45 · 189 阅读 · 0 评论 -
Leetcode 104. Maximum Depth of Binary Tree (Python)【Easy】
题目:Given a binary tree, find its maximum depth.给定二叉树,找到它的最大深度。The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.最大深度是从根节点到最远叶节点...原创 2018-07-17 21:29:36 · 275 阅读 · 0 评论 -
leetcode 118. Pascal's Triangle (Python)
题目:Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.In Pascal's triangle, each number is the sum of the two numbers directly above it.Example:Input: 5Ou...原创 2018-07-23 21:35:32 · 413 阅读 · 0 评论 -
102. Binary Tree Level Order Traversal 二叉树级别遍历 (Medium)【Medium】
题目:Given a binary tree, return thelevel ordertraversal of its nodes' values. (ie, from left to right, level by level).For example:Given binary tree[3,9,20,null,null,15,7], 3 / \ 9 ...原创 2018-07-19 10:03:52 · 233 阅读 · 0 评论 -
leetcode 119. Pascal's Triangle II 帕斯卡三角形(杨辉三角)(Python)
题目: Given a non-negative index k where k ≤ 33, return the kth index row of the Pascal's triangle.Note that the row index starts from 0.In Pascal's triangle, each number is the sum of t...原创 2018-07-24 22:11:28 · 1447 阅读 · 0 评论 -
Leetcode 110. Balanced Binary Tree (Easy) 平衡二叉树
题目:Given a binary tree, determine if it is height-balanced.给定二叉树,确定它是否是高度平衡的。For this problem, a height-balanced binary tree is defined as:对于此问题,高度平衡二叉树定义为:a binary tree in which the depth ...原创 2018-07-19 22:24:49 · 130 阅读 · 0 评论 -
leetcode 121. Best Time to Buy and Sell Stock 买卖股票的最好时间【easy】
题目:Say you have an array for which the ith element is the price of a given stock on day i.假设您有一个数组,其中第i个元素是第i天给定股票的价格。If you were only permitted to complete at most one transaction (i.e., buy on...原创 2018-07-25 21:57:24 · 119 阅读 · 0 评论 -
leetcode 136. Single Number(Easy)
Given a non-empty array of integers, every element appears twice except for one. Find that single one.Note:Your algorithm should have a linear runtime complexity. Could you implement it without us...原创 2018-08-27 22:00:00 · 116 阅读 · 0 评论 -
Leetcode 268. Missing Number[Easy]
题目:Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing from the array.Example 1:Input: [3,0,1]Output: 2Example 2:Input: [9,6,4,2,3,5,7,0,...原创 2018-08-29 09:47:01 · 119 阅读 · 0 评论 -
【leetcode】 155. 最小栈 (Easy) & 【剑指Offer】30.包含min函数的栈
题目:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。 pop()-- 删除栈顶的元素。 top()-- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStac...原创 2018-09-11 21:11:02 · 252 阅读 · 0 评论 -
leetcode 414. 第三大的数(Easy)(数组)
题目: 给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。示例 1:输入: [3, 2, 1]输出: 1解释: 第三大的数是 1.示例 2:输入: [1, 2]输出: 2解释: 第三大的数不存在, 所以返回最大的数 2 .示例 3:输入: [2, 2, 3, 1]输出:...原创 2018-09-17 10:33:21 · 198 阅读 · 0 评论 -
leetcode 160. 相交链表 (Easy)
题目:编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表:A: a1 → a2 ↘ c1 → c2 → c3 ↗ B: b1 → b2 → b3在节点 c1 开始相交。 注意:如果...原创 2018-09-12 21:53:24 · 105 阅读 · 0 评论 -
leetcode 215. 数组中的第K个最大元素(Medium)(数组)
题目:在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。思路:...原创 2018-09-17 15:35:40 · 105 阅读 · 0 评论 -
leetcode 167. 两数之和 II - 输入有序数组 [Easy]
题目:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7, 11,...原创 2018-09-13 22:11:51 · 561 阅读 · 0 评论 -
leetcode203. 删除链表中的节点(Easy)(链表)
题目: 删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5思路: 给这个链表设定一个虚头结点,头结点的val不存放实际意义的值,next指向链表的第一个节点。从链表的第一个节点开始判断是否val值...原创 2018-09-19 14:18:19 · 123 阅读 · 0 评论 -
leetcode 169. 求众数 (Easy)(数组)
题目:给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2思路: 首先,对数组进行排序操作。求出目标值最少出现的次数length。依次遍历整个数组,让当前...原创 2018-09-14 16:43:50 · 236 阅读 · 0 评论 -
leetcode 206. 反转链表 (Easy)(链表)
题目: 反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路: 需要记录当前节点,前一个节点,以及后一个节点。首先,初始化一个空节点,空节点是第一个pre节点,head节点是第一个cur节点,head.next是第一个nex节点...原创 2018-09-19 19:39:50 · 106 阅读 · 0 评论 -
leetcode 189. 旋转数组(Easy)(数组)
题目:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-1...原创 2018-09-14 17:33:04 · 87 阅读 · 0 评论 -
leetcode 283. 移动零(Easy) (数组)
题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路一: 首先,查询list集合中0的个数n,然后把这些0都删除掉。最后再在末尾添加上n个0。代码一:...原创 2018-09-15 10:44:17 · 85 阅读 · 0 评论 -
leetcode 234. 回文链表(Easy)(链表)
题目:请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路: 判断一个链表是否为回文链表,起初想到的方法是翻转整张链表再与原本的链表做比较,可是这样一来空间复杂度是O(n)...原创 2018-09-21 11:35:35 · 127 阅读 · 0 评论 -
leetcode 231. 2的幂 【Easy】
题目:给定一个整数,编写一个函数来判断它是否是 2 的幂次方。示例 1:输入: 1输出: true解释: 20 = 1示例 2:输入: 16输出: true解释: 24 = 16示例 3:输入: 218输出: false代码:class Solution: def isPowerOfTwo(self, n): """ ...原创 2018-09-28 10:16:43 · 86 阅读 · 0 评论 -
leetcode 237. 删除链表中的节点 [Easy]
题目: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 -- head = [4,5,1,9],它可以表示为: 4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那...原创 2018-09-28 11:05:28 · 116 阅读 · 0 评论 -
leetcode 292. Nim游戏 【easy】
题目: 你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false 解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛; 因为无论你拿走 ...原创 2018-09-29 09:27:57 · 188 阅读 · 0 评论 -
leetcode 344. 反转字符串【Easy】
题目:编写一个函数,其作用是将输入的字符串反转过来。示例 1:输入: “hello”输出: “olleh”示例 2:输入: “A man, a plan, a canal: Panama”输出: “amanaP :lanac a ,nalp a ,nam A”思路:先把str字符串转换成list集合,然后调用list集合的reversed方法将list集合翻转。然后再将list集...原创 2018-09-29 10:02:06 · 740 阅读 · 0 评论 -
leetcode 287. 寻找重复数【Medium】【数组】 && 剑指Offer 面试题3 题目2:不修改数组找出重复的数字
这道题leetcode和剑指Offer题目略有不同。leetcode说数组中的重复数可能不止一个,但是结果要求返回一个就行;剑指Offer上说只有一个重复的数,但是重复的次数不一定。两个题目的共性就是只需要返回一个重复的数即可。leetcode 题目:给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数...原创 2018-10-18 09:34:44 · 296 阅读 · 0 评论 -
leetcode 557. 反转字符串中的单词 III【Easy】
题目:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: “Let’s take LeetCode contest”输出: “s’teL ekat edoCteeL tsetnoc”注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。思路:首先,把每个单词根据空格先分开。然后,依次翻转每个单词中的字母。最后再...原创 2018-09-29 10:44:33 · 142 阅读 · 0 评论 -
leetcode 235. 二叉搜索树的最近公共祖先(Python)[Easy]
题目:给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] _____...原创 2018-10-15 10:37:44 · 490 阅读 · 0 评论 -
leetcode 240. 搜索二维矩阵 II【数组】【Medium】&&剑指Offer面试题4:二维数组中的查找
题目:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列。 每列的元素从上到下升序排列。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 1...原创 2018-10-18 15:00:29 · 172 阅读 · 0 评论 -
leetcode 27. 移除元素【数组】【Easy】
题目:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 num...原创 2018-10-15 20:25:00 · 159 阅读 · 0 评论 -
leetcode 581. 最短无序连续子数组【数组】【Easy】
题目: 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。你找到的子数组应是最短的,请输出它的长度。示例 1:输入: [2, 6, 4, 8, 10, 9, 15]输出: 5解释: 你只需要对 [6, 4, 8, 10, 9] 进行升序排序,那么整个表都会变为升序排序。说明 :输入的数组长度范围在 ...原创 2018-10-16 10:52:45 · 165 阅读 · 0 评论 -
leetcode 74. 搜索二维矩阵【Medium】【数组】
题目:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]target = 3输出: true示例 2...原创 2018-10-19 10:58:22 · 118 阅读 · 0 评论 -
leetcode 605. 种花问题(数组)(Easy)
题目:假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回False。示例 1:输入: flowerbed = [1,0,0,0,1], n =...原创 2018-10-29 11:03:19 · 218 阅读 · 0 评论 -
leetcode 70. 爬楼梯【递归】【动态规划】【Easy】&& 剑指Offer面试题10 题目2:青蛙跳台阶问题
题目:假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶...原创 2018-10-26 15:27:58 · 626 阅读 · 0 评论 -
leetcode 121. 买卖股票的最佳时机 【动态规划】【数组】【Easy】
题目:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5...原创 2018-10-31 11:13:38 · 988 阅读 · 0 评论 -
leetcode 852. 山脉数组的峰顶索引 【二分查找】
题目:我们把符合下列属性的数组 A 称作山脉:A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ...原创 2018-11-01 10:10:52 · 593 阅读 · 0 评论 -
leetcode349. 两个数组的交集【数组】
题目:给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。代码一:class Sol...原创 2018-11-01 10:45:04 · 127 阅读 · 0 评论 -
leetcode 704. 二分查找 【二分查找】
题目;给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5...原创 2018-11-01 10:56:33 · 388 阅读 · 0 评论 -
leetcode 771. 宝石与石头【Easy】【哈希表】
题目:给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = "aA", S = "aAAbbbb"输出: 3示例 2:输入: J = "z", ...原创 2018-11-09 14:37:15 · 195 阅读 · 0 评论 -
leetcode 929. 独特的电子邮件地址
题目:每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。例如,在 alice@leetcode.com中, alice 是本地名称,而 leetcode.com 是域名。除了小写字母,这些电子邮件还可能包含 ',' 或 '+'。如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名称中没有点的同一地址。例如,"alice.z...原创 2018-11-09 15:04:59 · 323 阅读 · 0 评论 -
leetcode 905. 按奇偶排序数组【数组】
题目:给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。 示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。 提示:1 <= A.length <= 5000 0 <=...原创 2018-11-09 15:49:21 · 192 阅读 · 0 评论