Loading

摘要: 388. 文件的最长绝对路径 以示例 "dir\n\tsubdir1\n\tsubdir2\n\t\tfile.ext" ,我们肯定会使用 String.split("\n") 分割字符串,会得到 {dir, \tsubdir1, \tsubdir2, \tfile.ext}。 利用字符串前面'\t 阅读全文
posted @ 2020-10-24 12:24 上海井盖王 阅读(59) 评论(0) 推荐(0)
摘要: 412. Fizz Buzz 常规做法不用解释太多,注意判断逻辑的顺序即可。 // 执行用时: 1 ms , 在所有 Java 提交中击败了 98.56% 的用户 // 内存消耗: 40.1 MB , 在所有 Java 提交中击败了 37.10% 的用户 class Solution { publi 阅读全文
posted @ 2020-10-24 12:23 上海井盖王 阅读(114) 评论(0) 推荐(0)
摘要: 423. 从英文中重建数字 第一次看到到题目时,其实我们的可能没什么思路,不妨观察下列数字: 数字 英文 0 zero 2 two 4 four 6 six 8 eight 这些数字对应的英文单词中有一个有别于其他数字的字母,我们可以通过这些字符出现的次数,计算出这些数字出现的次数,那么剩下的数字怎 阅读全文
posted @ 2020-10-24 12:19 上海井盖王 阅读(149) 评论(0) 推荐(0)
摘要: 451. 根据字符出现频率排序 看到这题,我的第一反应是用一个HashMap记录字符串中字符出现的频率,然后通过重写compare接口实现HashMap依照value的值排序key,最后使用StringBuffer组装新的字符串。具体算法见代码。 // 执行用时: 17 ms , 在所有 Java 阅读全文
posted @ 2020-10-24 12:17 上海井盖王 阅读(91) 评论(0) 推荐(0)
摘要: 492. 构造矩形 直接从$1$开始寻找${L,W}$的组合,这样的效率其实不高。 // 执行耗时:68 ms,击败了20.65% 的Java用户 // 内存消耗:36.3 MB,击败了54.36% 的Java用户 class Solution { public int[] constructRec 阅读全文
posted @ 2020-10-24 12:15 上海井盖王 阅读(81) 评论(0) 推荐(0)
摘要: 506. 相对名次 因为需要找出 \(N\) 名运动员的相对成绩,首先能想到的策略就是 排序,排序的依据应该是 成绩,排序的对象是 成绩所对的下标。 方法一:TreeMap排序成绩 // 执行用时: 12 ms , 在所有 Java 提交中击败了 52.43% 的用户 // 内存消耗: 40 MB 阅读全文
posted @ 2020-10-24 12:12 上海井盖王 阅读(58) 评论(0) 推荐(0)
摘要: 530. 二叉搜索树的最小绝对差 方法一:DFS遍历+暴力搜索 朴素的想法,我们可以前序(中序、后序)遍历整颗二叉树,将数值存入一个ArrayList中,接着再使用两层循环遍历搜索最小的两数之差即可。 // 执行用时: 218 ms , 在所有 Java 提交中击败了 5.52% 的用户 // 内存 阅读全文
posted @ 2020-10-24 12:09 上海井盖王 阅读(90) 评论(0) 推荐(0)
摘要: 535. TinyURL 的加密与解密 方法一:使用内置函数hashcode 我们可以使用Java中内置的hashCode() 来为每个url产生加密结果。同样的,映射结果保存在HashMap以供解码。 一个String对象的hash code的计算方法是这样的: \[ hashcode_{Stri 阅读全文
posted @ 2020-10-24 12:08 上海井盖王 阅读(241) 评论(0) 推荐(0)
摘要: 537.复数乘法 两个复数的运算规则是这样的:\((a_1 + b_1i) * (a_2 + b_2i) = (a_1 * a_2 - b_1 * b_2) + (a_1 * b_2 + a_2 * b_1)i\) 基于这个公式,我们只需要截取获得 String a, String b 中的 a1、 阅读全文
posted @ 2020-10-24 12:06 上海井盖王 阅读(85) 评论(0) 推荐(0)
摘要: // 执行用时: 9 ms , 在所有 Java 提交中击败了 62.23% 的用户 // 内存消耗: 40 MB , 在所有 Java 提交中击败了 58.90% 的用户 class Solution { public int findMinDifference(List timePoints) 阅读全文
posted @ 2020-10-24 12:04 上海井盖王 阅读(71) 评论(0) 推荐(0)
摘要: 551. 学生出勤记录 I 一次遍历,计算字符串中字符‘A’的数量,然后再查看一下是否存在“LLL”子串即可。可以在循环时优化。 方法一:优化一次循环 // 执行用时: 0 ms , 在所有 Java 提交中击败了 100.00% 的用户 // 内存消耗: 36.5 MB , 在所有 Java 提交 阅读全文
posted @ 2020-10-24 12:02 上海井盖王 阅读(30) 评论(0) 推荐(0)
摘要: 844. 比较含退格的字符串 class Solution { public boolean backspaceCompare(String S, String T) { StringBuilder sb1 = new StringBuilder(); StringBuilder sb2 = new 阅读全文
posted @ 2020-10-24 12:00 上海井盖王 阅读(75) 评论(0) 推荐(0)
摘要: 701. 二叉搜索树中的插入操作 二叉搜索树的性质:对于任意节点 \(root\) 而言,左子树(如果存在)上所有节点的值均小于 \(root.val\),右子树(如果存在)上所有节点的值均大于 \(root.val\),且它们都是二叉搜索树。 因此,当将 \(val\) 插入到以 \(root\) 阅读全文
posted @ 2020-10-24 11:59 上海井盖王 阅读(90) 评论(0) 推荐(0)
摘要: 553. 最优除法 本题所考察的是:如何进行字符串拼接。 为了获得最大的除法结果,应该让 被除数 尽可能较大,而 除数 尽可能小,那么仅需要考虑:① 如果 \(nums.length ≤ 2\) 时,输出时应不带括号;② 如果 \(nums.length > 2\) 时,应该在第二位数字前加上左括号 阅读全文
posted @ 2020-10-24 11:57 上海井盖王 阅读(34) 评论(0) 推荐(0)
摘要: 592.分数加减运算 本题的关键点在于如何处理-,并且对于首位分数是否为负需要单独存储。由于最后我们需要对分数进行化简,这里我们手写GCD算法(辗转相除法)求出最大公约数,对分子分母进行化简后拼接字符串即可。 // 执行用时: 7 ms , 在所有 Java 提交中击败了 86.67% 的用户 // 阅读全文
posted @ 2020-10-24 11:52 上海井盖王 阅读(144) 评论(0) 推荐(0)
摘要: 636. 函数的独占时间 使用栈来模拟函数的调用,即在遇到一条包含 start 的日志时,我们将对应的函数 id 入栈;在遇到一条包含 end 的日志时,我们将对应的函数 id 出栈。在每一个时刻,栈中的所有函数均为被调用的函数,而栈顶的函数为正在执行的函数。 依次遍历所有的日志,对于第 i 条日志 阅读全文
posted @ 2020-10-24 11:51 上海井盖王 阅读(87) 评论(0) 推荐(0)
摘要: // 执行用时: 5 ms , 在所有 Java 提交中击败了 93.98% 的用户 // 内存消耗: 38.9 MB , 在所有 Java 提交中击败了 47.30% 的用户 class Solution { public boolean judgeCircle(String moves) { i 阅读全文
posted @ 2020-10-24 11:50 上海井盖王 阅读(93) 评论(0) 推荐(0)
摘要: 682. 棒球比赛 LinkedList 实现了 Queue, Deque, Stack 的功能,只需分别模拟 C, D, + 需要实现的计分规则即可。其中 + 操作可以理解为:先将top弹出,然后计算新栈顶的值为 newTop = top + 当前栈顶值,然后再依次入栈即可。 class Solu 阅读全文
posted @ 2020-10-24 11:48 上海井盖王 阅读(104) 评论(0) 推荐(0)
摘要: 771. 宝石与石头 方法一:双层循环 // 执行用时: 1 ms , 在所有 Java 提交中击败了 99.67% 的用户 // 内存消耗: 37.1 MB , 在所有 Java 提交中击败了 69.25% 的用户 class Solution { public int numJewelsInSt 阅读全文
posted @ 2020-10-24 11:47 上海井盖王 阅读(56) 评论(0) 推荐(0)
摘要: 876. 链表的中间节点 **朴素解法:**这道题最朴素的做法是,先遍历一次,计算链表的长度,进而计算链表中间结点的下标(注意偶数结点的时候,得到的是中间的第二个结点),然后再遍历一次,来到所要求结点的位置。 缺点: 必须先遍历完整个链表,然后才可以「干正事」,再遍历到一半,找到中间结点; 在链表的 阅读全文
posted @ 2020-10-24 11:45 上海井盖王 阅读(139) 评论(0) 推荐(0)