
LeetCode
Spencer_q
这个作者很懒,什么都没留下…
展开
-
冒泡排序(Python实现)
冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二...原创 2018-08-27 18:09:26 · 448 阅读 · 0 评论 -
LeetCode 690 员工的重要性
给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度 和 直系下属的id。比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数据结构中...原创 2018-08-28 21:35:22 · 214 阅读 · 0 评论 -
LeetCode 155 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...原创 2018-08-27 10:32:58 · 210 阅读 · 0 评论 -
LeetCode 641 设计循环双端队列
设计实现双端队列。你的实现需要支持以下操作:MyCircularDeque(k):构造函数,双端队列的大小为k。 insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true。 insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。 deleteFront():从双端队列头部删除一个元素。 如果操作成功返回 true。 dele...原创 2018-08-26 14:57:11 · 1284 阅读 · 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,9,12], targe...原创 2018-08-25 15:14:28 · 191 阅读 · 0 评论 -
LeetCode 463 岛屿的周长
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。示例 :...原创 2018-08-21 09:05:25 · 299 阅读 · 0 评论 -
LeetCode 485 最大连续1的个数
给定一个二进制数组, 计算其中最大连续1的个数。示例 1:输入: [1,1,0,1,1,1]输出: 3解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3.注意:输入的数组只包含 0 和1。 输入数组的长度是正整数,且不超过 10,000。class Solution: def findMaxConsecutiveOnes(self, nums...原创 2018-08-21 09:17:45 · 189 阅读 · 0 评论 -
LeetCode 202 快乐数
编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例: 输入: 19输出: true解释: 1**2 + 9**2 = 828**2 + 2**2 = 686**2 + 8**2 = 100...原创 2018-08-24 13:56:43 · 221 阅读 · 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说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?思路:首先通过set将nums排序,然后通过一个从0开始的累加器与num...原创 2018-08-24 13:45:49 · 234 阅读 · 0 评论 -
LeetCode 283 移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。思路:遍历列表,一旦列表中的元素为零,从列表中删除,在末尾添加一个零class Solution: def moveZeroes(s...原创 2018-08-23 15:48:10 · 152 阅读 · 0 评论 -
LeetCode 682 棒球比赛
你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. "C"(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,应该被移除...原创 2018-08-22 14:54:40 · 307 阅读 · 0 评论 -
LeetCode 136 只出现1次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路:遍历列表中的每个数据,一旦count=1,就返回,时间复杂度为O(n)class S...原创 2018-08-21 11:27:33 · 192 阅读 · 0 评论