本文就解决一类最难掌握的双指针技巧:滑动窗口技巧。这个算法技巧的思路非常简单,就是维护一个窗口,不断滑动,然后更新答案。LeetCode上有起码10道运用滑动窗口算法的题目,难度都是中等和困难。该算法的大致逻辑如下:intleft=0,r…
递归详解
首先说明一个问题,简单阐述一下递归,分治算法,动态规划,贪心算法这几个东西的区别和联系,心里有个印象就好。递归是一种编程技巧,一种解决问题的思维方式;分治算法和动态规划很大程度上是递归思想基础上的(虽然动态规划的最终版本大都不是递归了,但解…
反直觉概率
今天聊点轻松的内容:几个和概率相关的有趣问题。计算概率有下面两个最简单的原则:原则一、计算概率一定要有一个参照系,称作「样本空间」,即随机事件可能出现的所有结果。事件A发生的概率=A包含的样本点/样本空间的样本总数。原则二、计算概率一定要明…
常见的位操作
本文分两部分,第一部分列举几个有趣的位操作,第二部分讲解算法中常用的n&(n-1)操作,顺便把用到这个技巧的算法题列出来讲解一下。因为位操作很简单,所以假设读者已经了解与、或、异或这三种基本操作。一、几个有趣的位操作利用或操作|和空…
刷题指南
一、数据结构的存储方式数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)。这句话怎么理解,不是还有散列表、栈、队列、堆、树、图等等各种数据结构吗?我们分析问题,一定要有递归的思想,自顶向下,从抽象到具体。你上来就列出这么多,那些…
KMP算法
KMP算法(Knuth-Morris-Pratt算法)是一个著名的字符串匹配算法,效率很高,也有点复杂。先在开头约定,本文用pat表示模式串,长度为M,txt表示文本串,长度为N。KMP算法是在txt中查找子串pat,如果存在,返回这个子串…
10.正则表达式匹配
10.正则表达式匹配https://leetcode-cn.com/problems/regular-expression-matching/10.正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’…
iOS_创建PCH文件实现播放器单例模式
需求概述:在优化帅哥日语app的音乐播放功能时,希望将音乐/视频播放控制器做成单例模式,当关闭播放界面的Controller时,音乐并不会停止播放;当重新进入播放界面的Controller时,还在播放原来的歌曲,还是熟悉的韵味效果如下:[c…