- 博客(11)
- 收藏
- 关注
原创 算法打卡第11周
leetcode第208题实现前缀树class Trie { private TrieNode root; private static class TrieNode { boolean isEnd; TrieNode[] children; public TrieNode() { this.children = new TrieNode[26]; this.isEnd = false;
2021-06-06 13:03:59
88
原创 算法打卡第十周
leetcode第437题路径总和题目描述:给定一个二叉树,它的每个结点都存放着一个整数值。找出路径和等于给定数值的路径总数。路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。```javaclass Solution { private int sum = 0; public int pathSum(TreeNode root, int targetSum) { if (root == null) {
2021-05-23 22:12:12
64
原创 算法打卡第九周
leetcode第1997题特定深度节点链接题目描述给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。package datastruct.tree.listdepth;import java.util.LinkedList;import java.util.Queue;/*** @date 2021/5/14 17:55*/public class ListOfDepth {
2021-05-15 08:27:43
63
原创 算法打卡第8周
leetcode第2044题LRU缓存设计和构建一个“最近最少使用”缓存,该缓存会删除最近最少使用的项目。缓存应该从键映射到值(允许你插入和检索特定键对应的值),并在初始化时指定最大容量。当缓存被填满时,它应该删除最近最少使用的项目。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上
2021-05-03 01:11:24
86
原创 算法打卡第七周
leetcode第153题寻找旋转排序数组中的最小值题目描述:已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], …,
2021-04-24 00:26:58
77
原创 算法打卡第六周
leetcode1962题动物收容所题目描述:有家动物收容所只收容狗与猫,且严格遵守“先进先出”的原则。在收养该收容所的动物时,收养人只能收养所有动物中“最老”(由其进入收容所的时间长短而定)的动物,或者可以挑选猫或狗(同时必须收养此类动物中“最老”的)。换言之,收养人不能自由挑选想收养的对象。请创建适用于这个系统的数据结构,实现各种操作方法,比如enqueue、dequeueAny、dequeueDog和dequeueCat。允许使用Java内置的LinkedList数据结构。enqueue方法有一个
2021-04-18 09:46:28
54
原创 算法打卡第五周
leetcode第1969题题目描述:在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。请编写程序,用栈将所有盘子从第一根柱子移到最后一根柱子。class Solution { public void hanota(List&
2021-04-08 17:41:43
51
原创 算法打卡第四周
leetcode第2022题:滑动窗口的最大值题目描述:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。例如:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7]package datastruct;import java.util.*;/** * @Author: jxy * @Date: 2021/4/3 11:37 */public class SlidingWindow {
2021-04-03 13:14:21
100
1
原创 算法打卡第三周
leetCode第1989题题目描述:给定一个包含正整数、加(+)、减(-)、乘()、除(/)的算数表达式(括号除外),计算其结果。表达式仅包含非负整数,+, - ,,/ 四种运算符和空格 。 整数除法仅保留整数部分。class Solution { public int calculate(String s) { Stack<Integer> numStack = new Stack<>(); int num = 0;
2021-03-26 13:10:55
88
原创 算法打卡第二周
leetCode第206题添加链接描述class Solution { public ListNode reverseList(ListNode head) { if (head == null) { return null; } ListNode pre = head; ListNode curr = head.next; int index = 0; while (curr
2021-03-20 18:04:07
82
原创 算法练习
算法打卡第一周Leetcode第1528题:重新排列字符串class Solution { public String restoreString(String s, int[] indices) { char[] chars = new char[indices.length]; for (int i =0;i<indices.length;i++) { chars[indices[i]] = s.charAt(i); }
2021-03-14 11:46:14
58
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人