随笔分类 - LeetCode 算法学习
本算法来源于LeetCode中文网站,特以学习并记录用于成长
摘要:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示例 1: 输
阅读全文
摘要:编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。 示例 1: 输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为
阅读全文
摘要:颠倒给定的 32 位无符号整数的二进制位。 示例 1: 输入: 00000010100101000001111010011100输出: 00111001011110000010100101000000解释: 输入的二进制串 00000010100101000001111010011100 表示无符号
阅读全文
摘要:给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。 示例 1: 输入: [10,2]输出: 210示例 2: 输入: [3,30,34,5,9]输出: 9534330 解题思路:这题思路很简单,将数值转换成string类型数据后将大的放置在栈的上方即可。 系统自带的比较方法是: “3” 比
阅读全文
摘要:给定一个整数 n,返回 n! 结果尾数中零的数量。 示例 1: 输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2: 输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。 解题思路:阶乘 0 的个数有一个规律——只能
阅读全文
摘要:给定一个Excel表格中的列名称,返回其相应的列序号。 例如, A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ...示例 1: 输入: "A"输出: 1示例 2: 输入: "AB"输出: 28示例 3: 输入: "ZY"输出: 701 解题思想
阅读全文
摘要:给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3]输出: 3示例 2: 输入: [2,2,1,1,1,2,2]输出: 2 解答思路:利用 undered_map
阅读全文
摘要:给定一个正整数,返回它在 Excel 表中相对应的列名称。 例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ...示例 1: 输入: 1输出: "A"示例 2: 输入: 28输出: "AB"示例 3: 输入: 701输出: "ZY" 解题
阅读全文
摘要:给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重
阅读全文
摘要:给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。 如果小数部分为循环小数,则将循环的部分括在括号内。 示例 1: 输入: numerator = 1, denominator = 2输出: "0.5"示例 2: 输入: numerator
阅读全文
摘要:比较两个版本号 version1 和 version2。如果 version1 > version2 返回 1,如果 version1 < version2 返回 -1, 除此之外返回 0。 你可以假设版本字符串非空,并且只包含数字和 . 字符。 . 字符不代表小数点,而是用于分隔数字序列。 例如,
阅读全文
摘要:峰值元素是指其值大于左右相邻值的元素。 给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。 数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞。 示例 1: 输入: nums
阅读全文
摘要:求排序后相邻两个数的最大值 思路:先利用C++标准模板库对vector进行排序,然后再依次寻找比较 代码:
阅读全文
摘要:根据逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 示例 2: 示例 3:
阅读全文
摘要:给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。 示例 1: 输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | | o | o | o + > 0 1 2 3 4 示例 2: 输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,
阅读全文
摘要:运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) -
阅读全文
摘要:给定一个二叉树,返回它的 后序 遍历。 示例: 解答:参考博客http://www.cnblogs.com/grandyang/p/4251757.html 前序遍历与后序遍历之所以放在一块,说明两者具有很大的相似性,实际情况也确实如此。如果我们将前序遍历输出值颠倒顺序,那么就可以很相近于后序遍历。
阅读全文
摘要:给定一个二叉树,返回它的 前序 遍历。 示例:
阅读全文
摘要:给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 示例 2: 参考博客:http://www.cnblogs.com/grandyang/p/4254
阅读全文
摘要:为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。 说明:不允许修改给定的链表。 示例 1:
阅读全文

浙公网安备 33010602011771号