![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
红三木子
这个作者很懒,什么都没留下…
展开
-
lc347前K个高频元素
两次堆排序+关联数组 我这个程序采用的是泛型,本来不是为了这道题而写,而是为了这一类题,使得不管输入的任何类型都可以计算前K个高频元素 因为要遵循题目格式,所以代码比较乱,之后会写成工具类放在github上, 欢迎大家star class Solution { private static int size; private static <T extends Comparable> void build(List<T> t) { int pos原创 2020-07-01 21:16:08 · 161 阅读 · 0 评论 -
lc75快速排序
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。 class Solution { public void sortColors(int[] nums) { recur(nums, 0, nums.length - 1); } private static void原创 2020-06-30 11:51:46 · 161 阅读 · 0 评论 -
lc904水果成篮
在一排树中,第 i 棵树产生 tree[i] 型的水果。 你可以从你选择的任何树开始,然后重复执行以下步骤: 把这棵树上的水果放进你的篮子里。如果你做不到,就停下来。 移动到当前树右侧的下一棵树。如果右边没有树,就停下来。 请注意,在选择一颗树后,你没有任何选择:你必须执行步骤 1,然后执行步骤 2,然后返回步骤 1,然后执行步骤 2,依此类推,直至停止。 你有两个篮子,每个篮子可以携带任何数量的水果,但你希望每个篮子只携带一种类型的水果。 用这个程序你能收集的水果总量是多少 这道题我利用HashMap+双原创 2020-06-23 22:53:19 · 233 阅读 · 0 评论 -
lc11盛最多水的容器
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且 n 的值至少为 2。 此题还是比较简单的,双指针求最大面积区域即可。 /** * @author sanmu * @classname Solution * @description 乘最多水的容器 * @date 2020/6/原创 2020-06-23 20:09:36 · 169 阅读 · 0 评论 -
字节算法题之复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。 有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。 /** * description: 恢复IP地址 * author: sanmu */ class RestoreIP { List<String> list = new ArrayList<>(); public List<String> restoreIpAddresse原创 2020-06-16 21:17:50 · 146 阅读 · 0 评论 -
lc794. 有效的井字游戏
用字符串数组作为井字游戏的游戏板 board。当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true。 原题链接 这题分到递归标签里面,但我感觉题解和递归标签不是很大啊 我用了递归遍历来判断数组相等的方法,最后超时了,结果进行剪枝优化,108个样例基本只过了80几个,但是逻辑是没问题的。 这是我的超时源码` /** * description: 井字游戏 * author: sanmu */ public class Solution { int X_sum =原创 2020-06-16 18:21:06 · 230 阅读 · 0 评论 -
lc1391. 检查网格中是否存在有效路径
lc1391. 检查网格中是否存在有效路径 给你一个 m x n 的网格 grid。网格里的每个单元都代表一条街道。grid[i][j] 的街道可以是: 1 表示连接左单元格和右单元格的街道。 2 表示连接上单元格和下单元格的街道。 3 表示连接左单元格和下单元格的街道。 4 表示连接右单元格和下单元格的街道。 5 表示连接左单元格和上单元格的街道。 6 表示连接右单元格和上单元格的街道。、 package com.algorithm.graph; /** * description:检查网格中是否存在原创 2020-06-08 23:15:03 · 175 阅读 · 0 评论 -
lc面试题 16.24. 数对和
设计一个算法,找出数组中两数之和为指定值的所有整数对。一个数只能属于一个数对。 水题 排序+双指针 /** * description: 数对和 * author: sanmu */ public class Solution { public List<List<Integer>> pairSums(int[] nums, int target) { List<List<Integer>> lists = new ArrayLi原创 2020-06-08 19:54:10 · 291 阅读 · 0 评论 -
lc951翻转等价二叉树
lc951翻转等价二叉树 我们可以为二叉树 T 定义一个翻转操作,如下所示:选择任意节点,然后交换它的左子树和右子树。 只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转等价于二叉树 Y。 /** * description: 翻转等价二叉树 * author: samu */ public class Solution { public boolean flipEquiv(TreeNode root1, TreeNode root2) { if(roo原创 2020-06-08 17:02:31 · 116 阅读 · 0 评论 -
lc173二叉搜索树迭代器
lc173二叉搜索树迭代器 实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 public class BSTIterator { private List<Integer> list = new ArrayList<Integer>(); private int[] minArray; private int curr; public BSTIterator(TreeNod原创 2020-06-07 23:19:58 · 114 阅读 · 0 评论 -
lc105 从前序与中序遍历序列构造二叉树
lc105 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树。 /** * description:从前序与中序遍历序列构造二叉树 * author:sanmu * */ public class Solution105 { public TreeNode buildTree(int[] preorder, int[] inorder) { if(preorder.length == 0 || inorder.length ==0){原创 2020-06-05 23:32:33 · 208 阅读 · 0 评论 -
lc102二叉树的层序遍历
lc102二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点) public class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> lists = new LinkedList<List<Integer>>();原创 2020-06-05 20:05:39 · 143 阅读 · 0 评论 -
lc1367 二叉树中的列表
lc1367 二叉树中的列表 给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。 如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则返回 False 。 一直向下的路径的意思是:从树中某个节点开始,一直连续向下的路径。 public class Solution{ private ListNode listNode; public boolean isSubPath(ListNode原创 2020-06-05 18:28:34 · 105 阅读 · 0 评论 -
966. 元音拼写检查器
题目描述 在给定单词列表 wordlist 的情况下,我们希望实现一个拼写检查器,将查询单词转换为正确的单词。 对于给定的查询单词 query,拼写检查器将会处理两类拼写错误: 大小写:如果查询匹配单词列表中的某个单词(不区分大小写),则返回的正确单词与单词列表中的大小写相同。 例如:wordlist = [“yellow”], query = “YellOw”: correct = “yellow” 例如:wordlist = [“Yellow”], query = “yellow”: correct =原创 2020-06-05 16:24:39 · 105 阅读 · 0 评论 -
lc17.17字符串多次搜索
题目 给定一个较长字符串big和一个包含较短字符串的数组smalls,设计一个方法,根据smalls中的每一个较短字符串,对big进行搜索。输出smalls中的字符串在big里出现的所有位置positions,其中positions[i]为smalls[i]出现的所有位置。 lc17.17字符串多次搜索 AC代码 class Solution { public int[][] multiSearch(String big, String[] smalls) { int[][] re原创 2020-06-05 01:01:48 · 112 阅读 · 0 评论 -
lc468 ipv4与ipv6的校验
class Solution { public String validIPAddress(String IP) { String[] ipsp = null; if (IP.indexOf('.') != -1) { boolean flag = true; if (!IP.endsWith(".")) { ipsp = IP.split("\\.");原创 2020-06-04 23:06:55 · 171 阅读 · 0 评论