![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
文章平均质量分 91
惊鸿只为卿
惊鸿一面,只待卿来。分享互联网技术,算法、面试相关,以及一些有趣的事。
展开
-
滑动窗口详解
滑动窗口基本概念滑动窗口是一种基于双指针的一种思想,两个指针指向的元素之间形成一个窗口。分类:窗口有两类,一种是固定大小类的窗口,一类是大小动态变化的窗口。应用:利用滑动窗口获取平滑的数据,如一段连续时间的数据平均值,能够有更好的稳定性,如温度监测。什么情况可以用滑动窗口来解决实际问题呢?一般给出的数据结构是数组或者字符串求取某个子串或者子序列最长最短等最值问题或者求某个目标值时该问题本身可以通过暴力求解核心思路窗口的形成在具体使用之前,我们知道窗口实际是两个指针之间形成的区域,原创 2021-10-18 20:06:24 · 41852 阅读 · 5 评论 -
一文详解leetcode多线程同步问题
多线程问题在日常的开发工作中很是常见,同时也是很重要的。多线程本身比较复杂,调试困难,在提高效率的同时,对线程安全也有更高的要求,因此多线程之间的同步是多线程问题的一个很重要的知识点。在面试过程中,也是判断候选人能力的一个很重要的考察点。本文针对leetcode上的一些多线程同步问题进行分析和总结,并尝试对同一问题使用常见的多线程同步的不同解决方法,以期能够熟练掌握多线程同步(通信)相关内容。基础知识为保证线程安全,多个线程同一时刻只能有一个线程进入临界区,其他线程则等待,直到该线程退出临界区,所有.原创 2021-10-10 23:39:05 · 319 阅读 · 0 评论 -
从一道概率问题说起
从一道概率问题说起本文选取面试过程中有意思的概率问题来进行讨论和分享,具体如下: 给定一个函数rand7(),每次调用都能够等概率的生成1-7这7个数字,利用这个函数如何等概率地生成1~9呢,即实现函数rand9()。分析我们能够利用的有限条件是rand7()这个函数,它能够等概率地生成1-7,而我们需要等概率地生成1~9,这中间必然是有联系,且能够进行转换的。换一个角度,如果我们有rand9(),那么如何实现rand7()呢?实际上,如果我们有rand9()这个函数的话,每次生成的数据原创 2021-09-07 16:38:30 · 391 阅读 · 0 评论 -
动态规划 回文篇
回文字符串指的是字符串从左到右 和从右到左是一样的。对于从i到j的子串,判断其回文s[i]==s[j] &&(flag[i+1][j-1] || j-i<=1)1、最小回文分割次数求最小的切分,使得分割后每个子串都是回文的。状态 dp[i] 表示从i到n-1的最小回文分割数目,那么对于任意的一个j,j属于[i,n-1],如果[i,j]是回文的话,则dp[i]=m...原创 2018-12-28 20:43:05 · 1577 阅读 · 0 评论 -
LeetCode 表达式求值/基本计算器 通用解法
LeetCode刷题最好按照标签归类来刷,本文主要对leetcode上的表达式求值(基本计算器)问题做一个梳理。这个问题实际上是一个很基础也很常见的问题,在《算法4》中也有提及使用双栈来解决,本文基于双栈求解该问题做了一个详解。实际在上一篇LeetCode 括号问题专栏中也提及了栈结构可用于处理表达式求值问题,在LeetCode中该类问题也有很多,理解本文后,可以使用该解法解决LC上所有该类问题。LC224. 基本计算器LC227. 基本计算器 IILC772. 基本计算器 III基本计算器原创 2021-07-11 18:04:53 · 712 阅读 · 0 评论 -
LeetCode 括号问题专栏
LeetCode刷题最好按照标签归类来刷,本文主要对leetcode上的主要括号问题做一个梳理。括号问题实际上在字符串中常出现,还有一些表达式求值的问题上也有应用,因此本次做一个总结。LC20 有效括号LC22 括号生成LC23 最长有效括号LC678. 有效的括号字符串LC1190. 反转每对括号间的子串LC1249 移除无效的括号括号问题的核心括号都是左右括号成对出现的,因此有效的括号必须满足一下条件:在整个字符串中 左右括号的数目必须相同在遍历字符串的过程中,左括号的数目总原创 2021-07-10 00:05:53 · 568 阅读 · 5 评论