![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣刷题_JAVA
InsaneDuck
学习记录
展开
-
【LC875】爱吃香蕉的珂珂_中等
珂珂喜欢吃香蕉。这里有 n 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 h 小时后回来。珂珂可以决定她吃香蕉的速度 k (单位:根/小时)。每个小时,她将会选择一堆香蕉,从中吃掉 k 根。如果这堆香蕉少于 k 根,她将吃掉这堆的所有香蕉,然后这一小时内不会再吃更多的香蕉。珂珂喜欢慢慢吃,但仍然想在警卫回来前吃掉所有的香蕉。返回她可以在 h 小时内吃掉所有香蕉的最小速度 k(k 为整数)。逻辑上没有问题,但是超时了,从1开始遍历吃香蕉的速度效率低,改用二分:...原创 2022-06-07 17:41:36 · 180 阅读 · 1 评论 -
【LC929】独特的电子邮件地址_简单
每个有效电子邮件地址都由一个本地名和一个域名组成,以 ‘@’ 符号分隔。除小写字母之外,电子邮件地址还可以含有一个或多个 ‘.’ 或 ‘+’ 。如果在电子邮件地址的 本地名 部分中的某些字符之间添加句点(‘.’),则发往那里的邮件将会转发到本地名中没有点的同一地址。请注意,此规则 不适用于域名 。如果在 本地名 中添加加号(‘+’),则会忽略第一个加号后面的所有内容。这允许过滤某些电子邮件。同样,此规则 不适用于域名 。可以同时使用这两个规则。给你一个字符串数组 emails,我们会向每个 email原创 2022-06-04 22:03:30 · 335 阅读 · 0 评论 -
【LC450】删除二叉搜索树中的节点
给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。一般来说,删除节点可分为两个步骤:...原创 2022-06-02 20:48:32 · 158 阅读 · 0 评论 -
【LC1022】从根到叶的二进制数之和_简单
题目给出一棵二叉树,其上每个结点的值都是 0 或 1 。每一条从根到叶的路径都代表一个从最高有效位开始的二进制数。例如,如果路径为 0 -> 1 -> 1 -> 0 -> 1,那么它表示二进制数 01101,也就是 13 。对树上的每一片叶子,我们都要找出从根到该叶子的路径所表示的数字。返回这些数字之和。题目数据保证答案是一个 32 位 整数。树中的节点数在 [1, 1000] 范围内Node.val 仅为 0 或 1题解1/** * Definition原创 2022-05-30 22:42:49 · 90 阅读 · 0 评论 -
【LC144】二叉树的前序遍历_简单
题目给你二叉树的根节点 root ,返回它节点值的前序遍历。题解根左右/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int v原创 2022-05-30 22:13:00 · 56 阅读 · 0 评论 -
【LC468】验证IP地址_中等
题目给定一个字符串 queryIP。如果是有效的 IPv4 地址,返回 “IPv4” ;如果是有效的 IPv6 地址,返回 “IPv6” ;如果不是上述类型的 IP 地址,返回 “Neither” 。有效的IPv4地址 是 “x1.x2.x3.x4” 形式的IP地址。 其中 0 <= xi <= 255 且 xi 不能包含 前导零。例如: “192.168.1.1” 、 “192.168.1.0” 为有效IPv4地址, “192.168.01.1” 为无效IPv4地址; “192.168.1原创 2022-05-29 22:46:00 · 121 阅读 · 0 评论 -
【LC1021】删除最外层的括号
题目有效括号字符串为空"“、”(“+A+”)"或A+B,其中A和B都是有效的括号字符串,+代表字符串的连接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串。如果有效字符串s非空,且不存在将其拆分为s=A+B的方法,我们称其为原语(primitive),其中A和B都是非空有效括号字符串。给出一个非空有效字符串s,考虑将其进行原语化分解,使得:s = P_1 + P_2 + … + P_k,其中P_i是有效括号字符串原语。对s进行原语化分解,删除分解中每个原语原创 2022-05-28 23:02:07 · 53 阅读 · 0 评论 -
【面试题17.11】单词距离
题目有个内含单词的超大文本文件,给定任意两个不同的单词,找出在这个文件中这两个单词的最短距离(相隔单词数)。如果寻找过程在这个文件中会重复多次,而每次寻找的单词不同,你能对此优化吗?题解双指针记录两个单词出现的位置,取最小值,但需要注意的是两指针的初始值的绝对值为String数组长度的最大值,以避免某个单词出现后,在比较时导致最短距离被无意缩小class Solution { public int findClosest(String[] words, String word1, Strin原创 2022-05-27 10:57:59 · 78 阅读 · 0 评论 -
【LC467】环绕字符串中唯一的子字符串
题目把字符串 s 看作是 “abcdefghijklmnopqrstuvwxyz” 的无限环绕字符串,所以 s 看起来是这样的:"...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd...." . 现在给定另一个字符串 p 。返回 s 中唯一的p的非空子串的数量 。题解失败案例暴力遍历所有子串,并利用set保证子串不重复,在遍历set中的子串并判断是否存在于环绕字符串中,结果超时class Solution { pu原创 2022-05-26 21:34:02 · 48 阅读 · 0 评论 -
【LC1297】子串的最大出现次数
题目给你一个字符串s,请你返回满足以下条件且出现次数最大的任意子串的出现次数:子串中不同字母的数目必须小于等于 maxLetters 。子串的长度必须大于等于 minSize 且小于等于 maxSize 。题解class Solution { /** [minSize, maxSize] 表示子串窗口的大小 */ public int maxFreq(String s, int maxLetters, int minSize, int maxSize) {原创 2022-05-26 16:02:24 · 94 阅读 · 0 评论 -
【LC3】无重复字符的最长子串
题目给定一个字符串 s,请你找出其中不含有重复字符的最长子串的长度。s 由英文字母、数字、符号和空格组成题解方法1参考热评题解:创建数组用于记录字符上一次出现的位置beg变量用于记录无重复子串的开始位置,并保证窗口开端不会左移class Solution { public int lengthOfLongestSubstring(String s) { int[] last = new int[128]; //记录字符上一次出现的位置 for原创 2022-05-24 22:48:26 · 245 阅读 · 0 评论 -
【LC965】单值二叉树
题目如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。题解递归终止条件:root == null,返回true方法体:倘若当前节点的左右子节点存在且与当前节点的值不同,则给定的数不是单值二叉树,返回false/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode lef原创 2022-05-24 22:07:37 · 86 阅读 · 0 评论 -
【LC78】子集
题目给你一个整数数组 nums ,数组中的元素互不相同。返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。你可以按任意顺序返回解集。题解方法1以[1,2,3]为例:numlenres[]11[] [1]22[],[1] [2],[1,2]34[],[1],[2],[1,2] [3],[1,3],[2,3],[1,2,3]class Solution { public List<List原创 2022-05-26 14:13:34 · 62 阅读 · 0 评论