随笔分类 - LeetCode—汇总
摘要:LeetCode 136 只出现一次的数字 问题描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 执行用时:1 ms, 在所有 Java 提交中击败了99.65%的
阅读全文
摘要:LeetCode 461 汉明距离 问题描述: 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 统计两个数二进制位不同的个数 方法一: 对最低位不断取模 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
阅读全文
摘要:LeetCode 557 反转字符串中的单词 III 问题描述: 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 使用额外空间 从第一个非空格位置开始记录单词的长度len,直到下一个空格为止i为止 将[i-len, i-1]范围内的单词进行翻转 执行用时:10
阅读全文
摘要:LeetCode 392 判断子序列 问题描述: 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 ⇐100)。 字符串的一个子序列是原始字符串删除一些(也可以不
阅读全文
摘要:LeetCode 241 为运算表达式设计优先级 问题描述: 给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合的结果。有效的运算符号包含 +, - 以及 * 。 分治 任何一个完整的运算式(单目运算除外)都可以从运算符位置分成两个子运算式
阅读全文
摘要:LeetCode 695 岛屿的最大面积 题目描述: 给定一个包含了一些 0 和 1 的非空二维数组 grid 。 一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 找到给定
阅读全文
摘要:LeetCode 377 组合总数IV 题目描述: 给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数。 动态规划 动态规划解法的设计(状态定义、状态转移)可以从递归解法开始 在递归解法中,每一次从数组中任选一个数nums[i],则子问题是同样的nums下找到的和为tag
阅读全文
摘要:LeetCode 684 冗余连接 题目描述: 在本问题中, 树指的是一个连通且无环的无向图。 输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, ..., N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。 结果图是一个以边组成的二维数组
阅读全文
摘要:LeetCode 225 用队列实现栈 问题描述: 使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户 内存消
阅读全文
摘要:Leetcode 232 用栈实现队列 题目描述: 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 辅助栈/双栈 输入栈(负责接收输入add())
阅读全文
摘要:Leetcode 17 电话号码的字母组合 问题描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 2: "abc" 3: "def" 4: "ghi" 5: "jkl" 6: "mno" 7: "pqr
阅读全文
摘要:LeetCode 633 平方数之和 题目描述: 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。 逆向双指针逼近 对于给定的整数target,可能存在的两个整数a、b均不可能大于floor(sqrt(c)), 因此在[0, floor(sqrt(c))]
阅读全文
摘要:LeetCode 167 两数之和II 题目描述: 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的
阅读全文
摘要:LeetCode 171 Excel表序列号 题目描述: 给定一个Excel表格中的列名称,返回其相应的列序号。 例如, A → 1 B → 2 C → 3 ... Z → 26 AA → 27 AB → 28 ... 26进制字符串转数字 执行用时:1 ms, 在所有 Java 提交中击败了100
阅读全文
摘要:LeetCode 459 重复的子字符串 题目描述: 给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。 枚举法/暴力法 枚举每个可能的子串 执行用时:12 ms, 在所有 Java 提交中击败了86.66%的用户 内存消耗:4
阅读全文
摘要:LeetCode 158 排序链表 问题描述: 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。 递归归并排序 执行用时:3 ms, 在所有 Java 提交中击败了99.15%的用户 内存消耗:41.7 MB, 在所有 Java 提交中击败了81.05%的用户 class
阅读全文
摘要:LeetCode 201 数字范围按位与 问题描述: 给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含m, n两端点)。 寻找公共前缀 两数a,b相与的结果等于保留a,b最长公共前缀,并将其它部分全部置为0 执行用时:6 ms, 在
阅读全文
摘要:LeetCode 134 加油站 在一条环路上有 N 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第i个加油站开往第 i+1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 如果你可以绕环路行驶一周,则返回出发时加油
阅读全文
摘要:LeetCode 679 24点游戏 题目描述: 你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过*,/,+,-,(,)的运算得到 24。 执行用时:7 ms, 在所有 Java 提交中击败了40.63%的用户 内存消耗:39.9 MB, 在所有 Java 提交中击败了19.15%的用户
阅读全文
摘要:LeetCode 169 多数元素 给定一个大小为n的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 n/2 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 遍历计数 执行用时:20 ms, 在所有 Java 提交中击败了11.88%的用户 内存消耗:45.1 MB,
阅读全文

浙公网安备 33010602011771号