java
文章平均质量分 73
惊鸿只为卿
惊鸿一面,只待卿来。分享互联网技术,算法、面试相关,以及一些有趣的事。
展开
-
滑动窗口详解
滑动窗口基本概念滑动窗口是一种基于双指针的一种思想,两个指针指向的元素之间形成一个窗口。分类:窗口有两类,一种是固定大小类的窗口,一类是大小动态变化的窗口。应用:利用滑动窗口获取平滑的数据,如一段连续时间的数据平均值,能够有更好的稳定性,如温度监测。什么情况可以用滑动窗口来解决实际问题呢?一般给出的数据结构是数组或者字符串求取某个子串或者子序列最长最短等最值问题或者求某个目标值时该问题本身可以通过暴力求解核心思路窗口的形成在具体使用之前,我们知道窗口实际是两个指针之间形成的区域,原创 2021-10-18 20:06:24 · 39660 阅读 · 4 评论 -
一文详解leetcode多线程同步问题
多线程问题在日常的开发工作中很是常见,同时也是很重要的。多线程本身比较复杂,调试困难,在提高效率的同时,对线程安全也有更高的要求,因此多线程之间的同步是多线程问题的一个很重要的知识点。在面试过程中,也是判断候选人能力的一个很重要的考察点。本文针对leetcode上的一些多线程同步问题进行分析和总结,并尝试对同一问题使用常见的多线程同步的不同解决方法,以期能够熟练掌握多线程同步(通信)相关内容。基础知识为保证线程安全,多个线程同一时刻只能有一个线程进入临界区,其他线程则等待,直到该线程退出临界区,所有.原创 2021-10-10 23:39:05 · 314 阅读 · 0 评论 -
树的非递归遍历(统一形式)
树的遍历本文针对树的前中后序的非递归遍历,统一模板。前序遍历public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<>(); if(root == null){ return res; } Stack<TreeNode> stack = new原创 2021-05-26 00:03:24 · 171 阅读 · 0 评论