09 2018 档案
摘要:问题描述: 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 思路: even = all odd = odd -1 方法:(counte
阅读全文
摘要:问题描述: 给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。 注意: 示例 1: 示例 2: 方法: 方法2:瑟瑟发抖 2018-09-30 17:21:02
阅读全文
摘要:问题描述: 计算给定二叉树的所有左叶子之和。 示例: 方法:recursive 官方: 依次遍历7,6,9,5,8,1,3,2 2018-09-30 15:02:39
阅读全文
摘要:问题描述: 在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...中找到第 n 个数字。 注意: n 是正数且在32为整形范围内 ( n < 231)。 示例 1: 示例 2: 方法(times out): 官方: 1-9 9 * 1 = 9个 10-99 9
阅读全文
摘要:问题描述: 二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。 每个 LED 代表一个 0 或 1,最低位在右侧。 例如,上面的二进制手表读取 “3:25”。 给定一个非负整数 n 代表当前 LED 亮着的数量,返回所有可能的时间。 案例: 注意事
阅读全文
摘要:问题描述: 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。 示例: 方法1: amazing: 2018-09-29 06:58:05
阅读全文
摘要:问题描述: 给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: 方法: 官方: 2018-09-28 16:27:05
阅读全文
摘要:问题描述: 给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。 (题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词
阅读全文
摘要:问题描述: 我们正在玩一个猜数字游戏。 游戏规则如下: 我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。 每次你猜错了,我会告诉你这个数字是大了还是小了。 你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0): 示例 : 方法: 201
阅读全文
摘要:问题描述: 给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。 说明:不要使用任何内置的库函数,如 sqrt。 示例 1: 示例 2: 官方: 官方2: 违反规定: 另外: 最后为什么时间超限: 2018-09-27 10:08:09
阅读全文
摘要:问题描述: 方法: 另: 2018-09-27 09:42:03
阅读全文
摘要:问题描述: 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 示例 2: 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致。 我们可以不考虑输出结果的顺序。 进阶: 如果给定的数组已经排好序呢?你将如何优化你的算法? 如果 nums1 的大小比 nums2 小很多,哪
阅读全文
摘要:map() 会根据提供的函数对指定序列做映射。 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。 >>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方[1, 4, 9, 16, 2
阅读全文
摘要:问题描述: 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 示例 2: 说明: 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 方法1: 官方: 官方2: 2018-09-26 14:55:19
阅读全文
摘要:问题描述: 编写一个函数,以字符串作为输入,反转该字符串中的元音字母。 示例 1: 示例 2: 说明: 元音字母不包含字母"y"。 方法: 用一个list纪录元音字母的索引 index = [],对里面的value进行swap. 官方: 2018-09-26 14:46:24
阅读全文
摘要:问题描述: 编写一个函数,其作用是将输入的字符串反转过来。 示例 1: 示例 2: 方法: 2018-09-26 12:49:04
阅读全文
摘要:问题描述: 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方。 示例 1: 示例 2: 进阶:你能不使用循环或者递归来完成本题吗? 方法1:同3的幂循环遍历 方法2:同3的次幂 方法3: 用4的倍数-1与num做与运算。15 = 1111 15 = 1111 16 =
阅读全文
摘要:问题描述: 给定一个整数,写一个函数来判断它是否是 3 的幂次方。 示例 1: 示例 2: 示例 3: 示例 4: 方法:取243时,会出错。log(243,3) == 4.9999... 用round 四舍五入。(时间太长) 官方:3^19=1162261467是小于2^31最大的3的倍数 循环:
阅读全文
摘要:round的用法: log的用法: import math math.log(9,3) : 2.0
阅读全文
摘要:问题描述: 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。 示例: 说明: 方法: 2018-09-25 19:46:52
阅读全文
摘要:问题描述: 你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。 你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。 示例: 方法: 分析:剩四个只要对方先拿,自己
阅读全文
摘要:>>>a = [1,2,3] >>> b = [4,5,6]>>> c = [4,5,6,7,8]>>> zipped = zip(a,b) # 返回一个对象>>> zipped<zip object at 0x103abc288>>>> list(zipped) # list() 转换为列表[(1
阅读全文
摘要:问题描述: 给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。 这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。 示例1: 示例 2: 示例 3: 示例 4: 说明: 你可以假设 pa
阅读全文
摘要:问题描述: 你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。 假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。 你可以通过调用
阅读全文
摘要:问题描述: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 说明: 方法1:检测到为0纪录0的个数,不为0时进行赋值运算nums[i - k] = nums[i] 最后将检测到的0补到nums的最后 方法2:每次将元素等于0的位置变成[]。 将
阅读全文
摘要:问题描述: 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 示例 2: 说明:你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现? 方法1: 官方1:
阅读全文
摘要:问题描述: 给定一个二叉树,返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 方法:(整不明白什么时候是None) 2018-09-22 16:14:13(蒙蔽状态)
阅读全文
摘要:问题描述: 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。 示例: 进阶: 你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗? 方法1: 官方:amazing 官方2: 2018-09-22 16:56:58
阅读全文
摘要:问题描述: 编写一个程序判断给定的数是否为丑数。 丑数就是只包含质因数 2, 3, 5 的正整数。 示例 1: 示例 2: 示例 3: 说明: 思路:用num对三个质数做除法运算,到最后能整除即为丑数。 方法1: 简洁版: 2018-09-22 18:15:12
阅读全文
摘要:问题描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。 示例 1: 示例 2: 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况? 方法1:每次从s中查找t首部的一个字母,更新
阅读全文
摘要:问题描述: 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root
阅读全文
摘要:问题描述: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 -- head = [4,5,1,9],它可以表示为: 示例 1: 示例 2: 说明: 链表至少包含两个节点。 链表中所有节点的值都是唯一的。 给定的节点为非末尾节点并且一定是链表中
阅读全文
摘要:问题描述: 请判断一个链表是否为回文链表。 示例 1: 示例 2: 方法1:用列表把前半部分保存起来,指针p从中间开始进行比较。 方法2:把全部的数都取出来放到list中,正序和逆序进行比较。 方法3:(官网)* 方法4:转 2018-09-20 14:51:27
阅读全文
摘要:问题描述: 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 示例: 说明: 你只能使用标准的栈操作 -- 也就是只有 push to top, p
阅读全文
摘要:问题描述: 给定一个整数,编写一个函数来判断它是否是 2 的幂次方。 示例 1: 0 示例 2: 4 示例 3: 方法1: 方法2:二进制 方法3: 2018-09-20 06:58:15
阅读全文
摘要:问题描述: 翻转一棵二叉树。 示例: 输入: 输出: 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 方法1:(递归) there are some different 2018-09-19 15:09:02
阅读全文
摘要:问题描述: 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, si
阅读全文
摘要:问题描述: 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。 示例 1: 示例 2: 示例 3: 方法1:(只适用于正数组成的list)erro 官方:感觉很无厘头啊,[99,99]
阅读全文
摘要:问题描述: 给定一个整数数组,判断是否存在重复元素。 如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。 示例 1: 示例 2: 示例 3: 方法: 2018-09-18 21:20:41
阅读全文
摘要:问题描述: 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 方法1:头插法 新增头结点 2018-09-18 21:17:27 1 class Solution: 2 def reverseList(self, head: L
阅读全文
摘要:问题描述: 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 示例 2: 示例 3: 官方1: >>>
阅读全文
摘要:问题描述: 统计所有小于非负整数 n 的质数的数量。 示例: 方法1:经典的判断是否为质数遍历(2,√n),超时 方法2:厄拉多塞筛法 西元前250年,希腊数学家厄拉多塞(Eeatosthese)想到了一个非常美妙的质数筛法,减少了逐一检查每个数的的步骤,可以比较简单的从一大堆数字之中,筛选出质数来
阅读全文
摘要:问题描述: 删除链表中等于给定值 val 的所有节点。 示例: 方法1:防止[1,1,1,1] 1 用while head。 2018-09-17 19:34:21
阅读全文
摘要:问题描述: 编写一个算法来判断一个数是不是“快乐数”。 一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。 示例: 2 2 2 2 2 2 2 2 方法1:
阅读全文
摘要:问题描述: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示
阅读全文
摘要:问题描述: 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例 : 示例 2: 方法1: 直接可以 return bin(n).count('1') 官方: 在这里只是提一下zfill函数 描述 Python zfill() 方法返回指定长
阅读全文
摘要:问题描述: 颠倒给定的 32 位无符号整数的二进制位。 示例: 进阶: 如果多次调用这个函数,你将如何优化你的算法? 方法1:常规操作,易错点在给头部补0. 方法2: 方法3: 2018-09-16 07:48:24
阅读全文
摘要:问题描述: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 示例 2: 方法1:1234567 k = 2 step1:54321 76 ;step2:6712345 官方: 官方二: 2018-09-15 11:57:25
阅读全文
摘要:问题描述: 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。 例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。 sql: select max(Salary) as SecondHig
阅读全文
摘要:问题描述: 表1: Person 表2: Address 编写一个 SQL 查询,满足条件:无论 person 是否有地址信息,都需要基于上述两表提供 person 的以下信息: sql: select p.FirstName,p.LastName,a.City,a.State from Perso
阅读全文
摘要:问题描述: 给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 示例 2: 说明: 你算法的时间复杂度应为 O(log n) 。 times out:时间复杂度O(nlogn),显然不行 改进: 题目是求尾数中0的个数,100return 2,100 == 10* 10十的因子有两个。5
阅读全文
摘要:问题描述: 给定一个Excel表格中的列名称,返回其相应的列序号。 例如, 示例 1: 示例 2: 示例 3: 方法1:(转) ABC = step1:sum_ = 1 + 26 × 0 ;step2:sum_ = 2 + 26 × 1;step3: sum_ = 3 + 26 × 28 方法2:(
阅读全文
摘要:问题描述: 给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 示例 2: 原来是读题读错了。。。 方法1: 改进一: 改进二: 官方: 官方二: 2018-09-14 21:50:56
阅读全文
摘要:问题描述: 给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如, 示例 1: 示例 2: 示例 3: 方法1: 官方:chr(65)为A 2018-09-14 21:01:38
阅读全文
摘要:问题描述: 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而
阅读全文
摘要:问题描述: 编写一个程序,找到两个单链表相交的起始节点。 例如,下面的两个链表: 在节点 c1 开始相交。 方法1: 官方:求出两个表的长度,表长的先走一个差值。 方法3: 2018-09-14 16:26:48
阅读全文
摘要:问题描述: 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例: 方法1: 官方: 今天课太多了,明
阅读全文
摘要:问题描述: 给定一个链表,判断链表中是否有环。 思路:用快的指针追慢的指针,只要有圈,一定能追上。 错误: 改正: 2018-09-12 21:03:17
阅读全文
摘要:问题描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 示例 2: 方法1:1 ^ 1 = 0 ,1 ^ 0 = 1 方法2:字典法 方法3:排序后比较大
阅读全文
摘要:问题描述: 好 times out: 错误原因:相等的时候没有移动到下一个位置 官方: 正则表达式替换: 正则复习请看:http://www.runoob.com/python/python-reg-expressions.html 视频:https://www.bilibili.com/video
阅读全文
摘要:问题描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 示例 2: 示例 3: 方法1: 2018-09
阅读全文
摘要:问题描述: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。 注意你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格
阅读全文
摘要:问题描述: 给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 进阶: 你可以优化你的算法到 O(k) 空间复杂度吗? 方法1: 官方:(未理解) 规律:*** 2018-09-11 20:04:00
阅读全文
摘要:问题描述: 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 方法1:temp_list存储当前层的列表,当层数大于1时,用temp2_list存储其上一层的值,根据规则进行相加求和,每行第一个和最后一个append(
阅读全文
摘要:问题描述: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树,以及目标和 sum = 22, 返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11
阅读全文
摘要:问题描述: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2。 给定一个二叉树,找出其
阅读全文
摘要:问题描述: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。 示例 1: 给定二叉树 [3,9,20,null,null,15,7] 返回 true 。 示例 2: 给定二叉树 [1,2,2,3,3,nu
阅读全文
摘要:问题描述: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 思路:由于数组是有序数组,所以只需用二分法构造即可,mid即为根节点,0:mid 的中间点为左子树的根节点,mid+1:末尾
阅读全文
摘要:问题描述: 给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 例如: 给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次遍历为: 2018-09-09 15:10:44
阅读全文
摘要:问题描述: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 方法1: 简体: 简体2: 递归取左右子树高度的较大者 20
阅读全文
摘要:问题描述: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 方法1:用两个列表模拟栈,初始a栈和b栈分别存储根节点的左节点和右节点,此后,a的左孩子进栈a,b的右孩子进栈
阅读全文
摘要:problem description: 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2
阅读全文
摘要:问题描述: 给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3] 输出: true 示例 2: 输入: 1 1 / \ 2 2 [1,2],
阅读全文
浙公网安备 33010602011771号