自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 算法打卡:第11周

问题一多次搜索:https://leetcode-cn.com/problems/multi-search-lcci/思路:使用前缀树保存所有待查找的字符串,然后依次遍历big字符串,将所有子串的前缀查找出来,最后反向找到所有的待查找字符串位置。public int[][] multiSearch(String big, String[] smalls) { Trie trie = new Trie(); for (String s : smalls) { trie.i

2021-05-30 16:36:04 72

原创 算法打卡:第9周

问题一剑指Offer 34.二叉树中和为某一值的路径:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof/思路:递归遍历并保存所有路径,然后计算符合要求的路径。public List<List<Integer>> pathSum(TreeNode root, int target) { if (root == null) { return

2021-05-15 10:49:13 89

原创 算法打卡:第8周

问题一LRU 缓存:https://leetcode-cn.com/problems/lru-cache-lcci/思路:首先需要理解LRU的含义:LRU-最近最久未使用; LFU-最近最少使用(最不常用)。很显然,因为需要存储K-V键值,所以需要使用到HashMap结构。其次,需要维护一个结构,来存储最近使用的到的数据的key,以便在容量满了的时候去除最近最久未使用的那个key。class LRUCache { private Map<Integer, Integer> cach

2021-05-02 13:36:30 83

原创 算法打卡:第7周

问题一寻找峰值: https://leetcode-cn.com/problems/find-peak-element/思路:依次遍历,比较当前位置的值是否大于前后的值(头尾元素需要特殊处理)。public int findPeakElement(int[] nums) { if (nums.length == 1) { return 0; } boolean flag = false; for (int i = 0; i < nums.lengt

2021-04-24 23:41:25 116

原创 算法打卡:第6周

问题一接雨水:https://leetcode-cn.com/problems/trapping-rain-water/思路:第一次想到的是建立一个n * m的矩阵,有柱子的位置用1表示,没有柱子的位置也就是可能是雨水的用0表示,只要每一行的任何的0两边都被1包夹着,则表示此处接到了雨水,但是oj判断空间和时间都太高了,直接溢出了。换个思路,每次计算每个位置的雨水高度,每个位置的雨水高度取决于左右两边的最高的柱子中,比较低的一侧的柱子。public int trap(int[] height) {

2021-04-18 10:56:07 73

原创 算法打卡:第5周

问题一汉诺塔问题: https://leetcode-cn.com/problems/hanota-lcci/思路:汉诺塔问题,使用递归解决,主要三个步骤:(1)、将A上n - 1个盘子移动到B上,借助C(2)、将A第n个盘子移动到C上(3)、将B上的n - 1个盘子移动到C上,借助Apublic void hanota(List<Integer> A, List<Integer> B, List<Integer> C) { move(A.size()

2021-04-10 15:59:47 68

原创 算法打卡:第4周

问题一队列的最大值: https://leetcode-cn.com/problems/dui-lie-de-zui-da-zhi-lcof/思路:其实本题需要实现的是一个优先队列,可以用作第二题的解答。class MaxQueue { private List<Integer> list; public MaxQueue() { list = new LinkedList<>(); } public int max_valu

2021-04-10 15:39:46 64

原创 算法打卡:第3周

问题一计算器: https://leetcode-cn.com/problems/calculator-lcci/思路:将数字与操作符分开,然后第一遍计算乘除法,第二遍计算加减法。例如:3 + 4 * 4 / 2操作: + * /数字:3 4 4 2操作符的个数比数字少一个,将操作符一一从栈中弹出,就可以依次计算完成。public int calculate(String s) { char[] arr =

2021-04-04 16:43:24 53

原创 算法打卡:第2周

问题一两数相加:https://leetcode-cn.com/problems/add-two-numbers/思路:首先想到的是,按v1 * 1 + v2 * 10 + v3 * 100 + …去计算每一个数的值,但是其值可能超过long的最大值,所以不能使用此方式,这也是为什么题目最后要求使用listnode输出的原因。那就按照最基础的思路去做,按照小学两数相加去做,从低位计算,超过十就进一位。public ListNode addTwoNumbers(ListNode l1, ListNode

2021-04-03 23:23:15 83

原创 算法打卡:第1周

问题一面试题 01.03. URL化:https://leetcode-cn.com/problems/string-to-url-lcci/面试题 01.03. URL化:https://leetcode-cn.com/problems/string-to-url-lcci/思路:先排除空串或实际长度为0的情况,将字符串转化为字符数组,然后遍历数组,遇到空格时添加%20。if (S == null || S.length() == 0 || length == 0) { re

2021-04-03 22:03:09 65

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除