leetcode
袁先生SS
这个作者很懒,什么都没留下…
展开
-
帕斯卡三角形(杨辉三角)
帕斯卡三角形(杨辉三角)颠倒给定的 32 位无符号整数的二进制位。给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]]我的思路思路一使用一个递归...原创 2019-11-13 22:57:33 · 1245 阅读 · 0 评论 -
颠倒二进制位
颠倒二进制位颠倒给定的 32 位无符号整数的二进制位。示例 1:输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596, 因此返回 964176192,...原创 2019-11-13 22:56:54 · 265 阅读 · 0 评论 -
缺失数字
缺失数字给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。示例 1:输入: [3,0,1]输出: 2示例 2:输入: [9,6,4,2,3,5,7,0,1]输出: 8说明: 你的算法应具有线性时间复杂度。你能否仅使用额外常数空间来实现?我的思路思路一利用公式n^m^n = m,只需要求出(0...原创 2019-11-13 22:56:18 · 258 阅读 · 0 评论 -
求众数
求众数给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2我的思路思路一用个Map集合,key存元素,value存count。去找最大的值,其中的key。...原创 2019-11-13 22:54:54 · 96 阅读 · 0 评论 -
汉明距离
汉明距离两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意: 0 ≤ x, y < 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。我的思路...原创 2019-11-06 08:27:17 · 840 阅读 · 0 评论 -
有效的括号
有效的括号给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。示例 1:输入: "()"输出: true示例 2:输入: "()[]{}"输出: true示例 3:输入: "(...原创 2019-11-06 00:28:25 · 80 阅读 · 0 评论 -
位1的个数
位1的个数编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:000000000000000000...原创 2019-11-06 00:24:37 · 155 阅读 · 0 评论 -
罗马数字转整数
罗马数字转整数罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,...原创 2019-11-05 23:49:27 · 204 阅读 · 0 评论 -
3的幂
3的幂给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false进阶: 你能不使用循环或者递归来完成本题吗?我的思路换底公式思路有待考究上网查了下,有些人提出使用换底公式...原创 2019-11-05 23:43:47 · 258 阅读 · 0 评论 -
计数质数
计数质数统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。我的思路思路一使用的埃拉托斯特尼筛法 Sieve of Eratosthenes,原理如下图????从2开始遍历到根号n,先找到第一个质数2,然后将其所有的倍数全部标记出来,然后到下一个质数3,标记其所有倍数,...原创 2019-11-05 23:03:00 · 364 阅读 · 0 评论 -
Fizz Buzz
Fizz Buzz写一个程序,输出从 1 到 n 数字的字符串表示。 如果 n 是3的倍数,输出“Fizz”; 如果 n 是5的倍数,输出“Buzz”; 如果 n 同时是3和5的倍数,输出 “FizzBuzz”。 示例:n = 15,返回:[ "1", "2", "Fizz", "4", "Buzz", ...原创 2019-11-05 22:51:58 · 235 阅读 · 0 评论 -
最小栈
最小栈设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。 示例:MinStack minStack = new MinStack();minStack.p...原创 2019-11-01 08:33:31 · 105 阅读 · 0 评论 -
Shuffle an Array
Shuffle an Array打乱一个没有重复元素的数组。示例:// 以数字集合 1, 2 和 3 初始化数组。int[] nums = {1,2,3};Solution solution = new Solution(nums);// 打乱数组 [1,2,3] 并返回结果。任何 [1,2,3]的排列返回的概率应该相同。solution.shuffle();// ...原创 2019-10-31 23:01:07 · 119 阅读 · 0 评论 -
打家劫舍
打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1)...原创 2019-10-31 00:18:43 · 92 阅读 · 0 评论 -
最大子序和
最大子序和给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。我的思路思路一 令状态dp[i]表示以...原创 2019-10-30 23:26:49 · 95 阅读 · 0 评论 -
买卖股票的最佳时机
买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 ...原创 2019-10-30 08:30:45 · 132 阅读 · 0 评论 -
爬楼梯
爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + ...原创 2019-10-29 23:01:42 · 88 阅读 · 0 评论 -
第一个错误的版本
第一个错误的版本你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 vers...原创 2019-10-29 22:03:06 · 537 阅读 · 0 评论 -
将有序数组转换为二叉搜索树
将有序数组转换为二叉搜索树给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例:输入:nums1 = [...原创 2019-10-29 08:23:09 · 247 阅读 · 0 评论 -
将有序数组转换为二叉搜索树
将有序数组转换为二叉搜索树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ ...原创 2019-10-29 08:02:22 · 249 阅读 · 0 评论 -
二叉树的层次遍历
二叉树的层次遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]我的思路通过像二叉树的最大深度的算法,一...原创 2019-10-25 00:03:48 · 96 阅读 · 0 评论 -
对称二叉树
对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代...原创 2019-10-24 07:54:05 · 58 阅读 · 0 评论 -
验证二叉搜索树
验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 ...原创 2019-10-24 07:53:04 · 110 阅读 · 0 评论