2022年10月4日

leetcode144,94,145

摘要: ###二叉树的前中后序遍历 递归方式: 1:确定递归函数的参数和返回值 2:确定终止条件 3:确定单层递归的逻辑 class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> result 阅读全文

posted @ 2022-10-04 22:35 你是千堆雪我是长街7 阅读(9) 评论(0) 推荐(0)

Java PriorityQueue(优先队列)实现大顶堆和小顶堆

摘要: Java PriorityQueue类是一种队列数据结构实现 它与遵循FIFO(先进先出)算法的标准队列不同。 //默认为小顶堆 PriorityQueue<Integer> minHeap = new PriorityQueue<>(k, (a,b)->a-b); PriorityQueue<In 阅读全文

posted @ 2022-10-04 19:33 你是千堆雪我是长街7 阅读(758) 评论(0) 推荐(0)

2022年10月3日

day13:leetcode:150,239,347

摘要: ###leetcode150. 逆波兰表达式求值 本题的思路和之前的括号配对,两数相消的思想一样,利用栈先进后出的特性,三个字符相消 到遍历到的是数字时,直接push,当遇到运算符,直接pop出两个数字做运算,然后push进栈,最后栈剩下的一个数就是最终表达式的值。 class Solution { 阅读全文

posted @ 2022-10-03 20:47 你是千堆雪我是长街7 阅读(9) 评论(0) 推荐(0)

Java中Map.Entry

摘要: Map<String, String> map = new HashMap<String, String>(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); 遍历map方式 1:Map.entrySe 阅读全文

posted @ 2022-10-03 20:18 你是千堆雪我是长街7 阅读(24) 评论(0) 推荐(0)

2022年10月2日

day11leetcode232,225,20,1047

摘要: ###225. 用队列实现栈 利用两个栈来实现队列的基本操作 一个 负责进栈 一个负责出栈 class MyQueue { Stack<Integer> stackIn; Stack<Integer> stackOut; public MyQueue() { stackIn=new Stack<>( 阅读全文

posted @ 2022-10-02 21:15 你是千堆雪我是长街7 阅读(9) 评论(0) 推荐(0)

2022年9月30日

day10

摘要: ###双指针总结 数组 移除某一个元素 快慢一起向后遍历 ,遇到要删除的元素。快先走 ,然后快指针直接覆盖要删除的元素 class Solution { public int removeElement(int[] nums, int val) { // 快慢指针![image](uploading 阅读全文

posted @ 2022-09-30 20:50 你是千堆雪我是长街7 阅读(5) 评论(0) 推荐(0)

day09

摘要: ###Kmp算法 KMP的经典思想就是:当出现字符串不匹配时,可以记录一部分之前已经匹配的文本内容,利用这些信息避免从头再去做匹配。对比Ff算法的简单除暴,每次匹配不成功,会产生大量回溯,导致效率低下。KMP充分利用了成功匹配的部分的结果。 KMP主要应用在字符串匹配上。 KMP最重要的 就是记录已 阅读全文

posted @ 2022-09-30 16:09 你是千堆雪我是长街7 阅读(8) 评论(0) 推荐(0)

2022年9月29日

day08

摘要: ###leetcode 344 反转字符串 直接首位设置头尾指针 头向右 尾向左 一边遍历 一遍交换 class Solution { public void reverseString(char[] s) { int left=0; int right=s.length-1; while(left 阅读全文

posted @ 2022-09-29 22:44 你是千堆雪我是长街7 阅读(7) 评论(0) 推荐(0)

2022年9月28日

day07 454 383 15 18

摘要: ###leetcode第454题.四数相加II 使用暴力解法的话 需要四个for循环 也就是 时间复杂度O(n^4)显然超时, 可以把题目拆成 两个O(n^2)的问题 具体做法:先遍历前两个数组 O(n^2)然后利用hashmap ;key 存放前两个数组组合产生的数,value记录出现次数 遍历完 阅读全文

posted @ 2022-09-28 10:07 你是千堆雪我是长街7 阅读(11) 评论(0) 推荐(0)

2022年9月26日

day06

摘要: ###leetcode242.有效的字母异位词 进入哈希表章节 思路:首先数组本身就是一个简单的哈希表,我们可以利用一个数组来记录元素出现的次数,字母一共有26个,我们可以定义一个长度为26的数组,数组下标依次对应记录a~z,因为要比较s和t两个字符串的元素出现次数。我们可以设置 当s出现了则数组对 阅读全文

posted @ 2022-09-26 21:59 你是千堆雪我是长街7 阅读(6) 评论(0) 推荐(0)

导航