
算法笔记题
本栏是本人在LeetCode算法题中记录的比较经典的体型、思路有自己的、也有总结别人的
冬雪是你
正就读于成都大学计算机学院软件工程专业
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java实现LRU
原题链接题目设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据原创 2021-08-26 16:09:31 · 154 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面-牛客-JZ13
原题链接题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。示例2输入:[2,4,6,5,7]返回值:[5,7,2,4,6]Codeimport java.util.*;public class Solution { // 插入排序思想,把前面的奇数看成有序数组,遇到奇数就插入到前面有序队列中 public int[] reOrderA原创 2021-08-11 00:01:14 · 120 阅读 · 0 评论 -
把数组排成最小的数-牛客-JZ32
原题链接题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。示例1输入:[3,32,321]返回值:“321323”Codeimport java.util.*;public class Solution { public String PrintMinNumber(int [] numbers) { String[] ans =原创 2021-08-10 10:25:55 · 153 阅读 · 0 评论 -
复杂链表的复制-牛客JZ25
原题链接原题:描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 下图是一个含有5个结点的复杂链表。图中实线箭头表示next指针,虚线箭头表示random指针。为简单起见,指向null的指针没有画出。示例:输入:{1,2,3,4,5,3,5,#,2,#}输出:{1,2,3,4,5,3,5,#,2,#}解析原创 2021-08-09 10:01:09 · 220 阅读 · 0 评论 -
省份数量-力扣-并查集
原题链接题目:有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例 1:输入:is原创 2021-08-08 16:22:16 · 156 阅读 · 0 评论 -
二叉树迭代遍历非递归Java
前序遍历public static void pre(TreeNode root) { Stack<TreeNode> stack = new Stack<>(); while (root != null || !stack.isEmpty()) { while (root != null) { System.out.printf(root.val + " ");原创 2021-08-07 14:53:38 · 125 阅读 · 0 评论 -
648.单词替换(使用前缀树实现)
原题题目:示例:利用前缀树实现(Java)构建前缀树/** * 前缀树 */class Trie { private TreeNode root; public Trie(){ this.root=new TreeNode(); } /** * 构建前缀树 * @param word */ public void insert(String word){ TreeNode node=r原创 2020-10-15 17:36:06 · 135 阅读 · 0 评论 -
78.子集
原题链接思路与算法代码package LeetCode.位运算.Subsets;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 78. 子集 */public class Solution { public static void main(String[] args) { System.out.println(Arrays.toString(n原创 2020-09-20 15:25:59 · 89 阅读 · 0 评论 -
99恢复二叉搜索树
原题链接二叉搜索树中的两个节点被错误地交换。请在不改变其结构的情况下,恢复这棵树。package LeetCode.BinarySearch.RecoverTree;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 99 恢复二叉搜索树 */public class Solution { public static void main(String[] args原创 2020-09-20 11:48:51 · 126 阅读 · 0 评论 -
100.相同的树(二叉树)
原题题目LeetCode原题链接树结点class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}解法一:二叉树的前序遍历法(递归)/** * 递归前序遍历法 * @param p * @param q * @return */ public static boolean isSameTre原创 2020-05-26 16:19:41 · 204 阅读 · 0 评论 -
42.接雨水LeetCode
题目来源LeetCode第42题根据别人大佬思想,自己慢慢领悟后总结,java编写出来的四个解该题的方法,我也是菜鸟一枚,写了很久的,所以做个笔记大家分享,大家指出不足,麻烦点个赞吧,谢谢首先是用于测试的主函数 public static void main(String[] args) { int[] height=new int[]{6,8,5,0,0,6,5};...原创 2020-03-25 11:53:47 · 192 阅读 · 0 评论