刷题
文章平均质量分 92
刷题 、 语言使用 和 算法理解.
目标 好的工作。
少年初心
少年心气:
初心小爬的成长学习路.
今天比昨天的自己更好了吗?
All is well.努力 上进 规律.
展开
-
JAVA数据结构、集合操作及常用API_C++开发转JAVA
日常JAVA开发过程中需要用到的JAVA数据结构基础概念。进阶集合框架、collection操作、常用API。JAVA Gson等常用转化技巧原创 2023-07-14 18:22:49 · 801 阅读 · 0 评论 -
JavaScript 数据结构与刷题基础
JavaScript ES5&ES6常用数据结构与算法,刷题必备基础。并且总结了开发中常用的JS方法,和一些扩展方法。其中,扩展的网址和扩展方法的来源都给出了超链接。既适用于想要快速通过JS数据结构去刷题的同学;也适用于想要提升自身能力,拓宽JS视界的同学。:D原创 2022-11-08 20:35:24 · 1246 阅读 · 0 评论 -
【字符转换相关】近期刷题训练--2021年秋招
引言1.相关题目1.1 盛水最多的容器盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例 1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表原创 2021-10-11 18:10:30 · 321 阅读 · 0 评论 -
【剑指Offer】数组&树&动态规划
按照本站上一篇的剑指Offer刷题顺序进行。引言一、数组1.1 数组中重复数字这道题在原书上绝对不是简单级别啊!它考察的是程序员的沟通能力,先问面试官要时间/空间需求!!!只是时间优先就用字典,(O(1)还有空间要求,就用指针+原地排序数组,如果面试官要求空间O(1)并且不能修改原数组,还得写成二分法!!!我的题解:class Solution {public: /** * @Description: 方法1考虑时间1 * @param {*} .原创 2021-05-14 22:28:40 · 257 阅读 · 0 评论 -
【进阶实战】我的代码实战_进阶相应的算法题
【待完成】引言一、思维方法使用思维应用:从后到前使用 bfs!!!1.1 题目描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次能向上下左右移动一步,每移动一步都要耗费1能量。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物 且 机器人只能破坏一次障碍物。若不能到达右下角就返回 -1;能到达则返回最少的能量。测试用例输入:7 3…**.….**…***…输出:121.2原创 2021-05-09 22:03:11 · 215 阅读 · 0 评论 -
【数据结构】双栈实现队列&队列实现栈思路和实现
引言一、双栈实现队列我的题解/** * @Description: 使用两个栈 实现队列 —— 进和出 * @param {*} * @return {*} * @notes: 关键:s1设置为队尾, s2设置为对头 * ① 出栈的时候如果为空,则 s1入s2; 再出队。 * ② 入栈则放到s1里面。 * ③ 如果 s1和s2同时为空——出栈的时候 则为空队列 返回-1。 */class CQue原创 2021-05-08 17:48:40 · 895 阅读 · 2 评论 -
【剑指Offer速刷与技巧笔记】剑指Offer重点&面试刷题
刷题过程中对于一系列技巧知晓了,但是拿过来题目 却不知道用什么对了……或者说 对应的题目看过、刷过、实现过 却……具体细节又不会了……(特别是 魔鬼细节二分搜索哇!)再者说 有些题目的“奇技淫巧”不是那么容易在短时间内想到的,所以想到了要针对面试厂家进行速刷……并相应的梳理刷题过程中 自己知识框架/思维 中短缺、不熟练的部分再进行二刷、三刷……另外很重要的一点: 对刷过的题目 要尝试进行分类、可以快速索引到……以上就是本篇的核心思想和目前刷题中遇到的问题。针对加粗重点部分进行重点突破…….原创 2021-04-26 23:04:15 · 1032 阅读 · 0 评论 -
【刷题总结与梳理】近期做题补充&二刷&输入输出整理
近期着重回顾已经做得题目,并且跟随笔试完成需要补习的内容。主要是图、动态规划 和 企业重点题目 —— 二刷主动刷完 并 完成个人框架的形成。引言一、寻找两个正序数组中的中位数1.1 题目看似非常简单,却是Hard问题 —— 因为需要我们十分了解 中位数的含义。1.2 解析这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为O(log (m+n)),看到这个时间复杂度,自然而然的想到了应该使用二分查找法来求解。那么回顾一下中位数的定义,如果某个有序数组长度是奇数,那么其中位数就是.原创 2021-04-16 23:33:17 · 330 阅读 · 0 评论 -
【数据结构相关学习与设计】STL\LRU\LFU\二叉堆\堆排序\单调栈\单调队列\Union-Find等
二叉树二叉堆 一些数据结构相关。重点突破并输出。书完成,总结并二刷?搜集信息、 重点目标公司刷题。学习AI 那本书!原创 2021-03-24 23:08:06 · 671 阅读 · 0 评论 -
【数学运算技巧&刷题熟练】高频面试题系列&结合书籍记录一些数学小技巧
素数寻找、 模幂运算、 位运算……c++ 二进制运算?一一下 四种理解。一、数学技巧——二分、连乘模、快速幂运算技巧1.1 技巧一些技巧,防止直接+或者* 溢出数据。二分法数学方法比如在二分查找中,我们求中点索引时用(l+r)/2转化成l+(r-l)/2,避免溢出的同时得到正确的结果。模运算 中比较常见的运算技巧:(a*b)%k = (a%k)(b%k)%k证明很简单,假设:a=Ak+B;b=Ck+D其中 A,B,C,D 是任意常数,那么:ab = ACk^2+ADk.原创 2021-03-23 22:49:28 · 1045 阅读 · 0 评论 -
【熟练+技巧】前缀和、差分数组、快速选择、运算优先级.
今天来聊一道简单却十分巧妙的算法问题:算出一共有几个和为 k 的子数组。图片思路很简单,我把所有子数组都穷举出来,算它们的和,看看谁的和等于 k 不就行了。关键是,如何快速得到某个子数组的和呢,比如说给你一个数组nums,让你实现一个接口sum(i, j),这个接口要返回nums[i…j]的和,而且会被多次调用,你怎么实现这个接口呢?因为接口要被多次调用,显然不能每次都去遍历nums[i…j],有没有一种快速的方法在 O(1) 时间内算出nums[i…j]呢?这就需要前缀和技巧了。1.1 什么是前原创 2021-03-18 15:24:54 · 672 阅读 · 0 评论 -
【继动态规划后&计划】回溯算法和动态规划的区别与转换
动态规划几篇文章已经完成,接下来看 优势、什么时候用……我们前文经常说回溯算法和递归算法有点类似,有的问题如果实在想不出状态转移方程,尝试用回溯算法暴力解决也是一个聪明的策略,总比写不出来解法强。那么,回溯算法和动态规划到底是啥关系?它俩都涉及递归,算法模板看起来还挺像的,都涉及做「选择」,真的酷似父与子。那么,它俩具体有啥区别呢?回溯算法和动态规划之间,是否可能互相转化呢?今天就用力扣第 494 题「目标和」来详细对比一下回溯算法和动态规划,真可谓群魔乱舞:注意,给出的例子 nums .原创 2021-03-12 12:17:31 · 1805 阅读 · 0 评论 -
【算法方法-动态规划4】经典动态规划刷题--其它经典问题+答疑
基于 【动态规划3】–背包问题/贪婪问题的DP 解题。进一步拓展其它 动态规划问题。以及 区分几个性质的答疑部分。一、 DP正则表达匹配1 题目和解析状态首先状态 dp 一定能自己想出来。dp[i][j] 表示 s 的前 i 个是否能被 p 的前 j 个匹配转移方程怎么想转移方程?首先想的时候从已经求出了 dp[i-1][j-1] 入手,再加上已知 s[i]、p[j],要想的问题就是怎么去求 dp[i][j]。已知 dp[i-1][j-1] 意思就是前面子串都匹配上了,不知道新的一.原创 2021-03-10 19:04:40 · 579 阅读 · 0 评论 -
【算法方法-动态规划3】经典动态规划刷题--背包/贪心/其它DP问题
基于上一篇文章 子序列刷题+第一篇的框架;进阶 大厂爱考的经典动规问题。看+敲:一系列经典问题: 【背包问题】 【贪心类型问题】 【其它经典问题】#2.10 2.11—— 【进阶问题…】 #2.18 2.19——答疑【动态规划和回溯到底谁是王道】...原创 2021-03-09 15:54:17 · 975 阅读 · 2 评论 -
【算法方法-动态规划2】经典动态规划刷题--子序列/字符串
1143.最长公共子序列(Medium)583. 两个字符串的删除操作(Medium)712.两个字符串的最小ASCII删除和(Medium)最长公共子序列不知道大家做算法题有什么感觉,我总结出来做算法题的技巧就是,把大的问题细化到一个点,先研究在这个小的点上如何解决问题,然后再通过递归/迭代的方式扩展到整个问题。比如说我们前文 手把手带你刷二叉树第三期,解决二叉树的题目,我们就会把整个问题细化到某一个节点上,想象自己站在某个节点上,需要做什么,然后套二叉树递归框架就行了。动态规划系列问题也.原创 2021-03-04 22:05:51 · 1273 阅读 · 0 评论 -
【算法方法-动态规划1】动态规划leetcode刷题必备基础
动规也可以起于 重复的穷举思想;使用了减少搜索空间复杂度的、聪明的 【状态转移方程】起到了剪枝、解决重叠子问题的效率问题。谨记:动规框架中的 四要素 (以及几个概念 ) + 解题思路。零、引言一、动态规划框架1.1 要素/概念动态规划问题的一般形式就是求最值。动态规划其实是运筹学的一种最优化方法,只不过在计算机问题上应用比较多,比如说让你求最长递增子序列呀,最小编辑距离呀等等。既然是要求最值,核心问题是什么呢?求解动态规划的核心问题是穷举。因为要求最值,肯定要把所有可行的答案穷举出来,然.原创 2021-02-06 16:37:13 · 648 阅读 · 0 评论 -
【数据结构&接下来的计划】树剩下的部分+链表 & 计划
一、 数据结构:首先树其它的刷完,再反过来快速刷完 链表;三、其它结构–STL \ 字符串\ UF\指针类\图\ 并查集、 复合数据结构……二、算法:数组、指针已完成(算法); ①动规 ②分治算法等…四、数学相关题目。引言一、完全二叉树的节点总数计算<最小时间复杂度内>思路分析现在回归正题,如何求一棵完全二叉树的节点个数呢?// 输入一棵完全二叉树,返回节点总数int countNodes(TreeNode root);如果是一个普通二叉树,显然只要向下面这样遍.原创 2021-01-27 11:42:36 · 294 阅读 · 0 评论 -
【二叉树3--二叉搜索树】BST基本操作+相应题目+扩展
前言/目录前文已经写了【二叉树基本框架&常规题目】+ 【多种方式序列化和反序列化二叉树方法】本篇文章将记录和写一下二叉树中常考的二叉搜索树的基础、题目和扩展题目(101)。首先,BST 的特性大家应该都很熟悉了:1、对于 BST 的每一个节点node,左子树节点的值都比node的值要小,右子树节点的值都比node的值大。2、对于 BST 的每一个节点node,它的左侧子树和右侧子树都是 BST。二叉搜索树并不算复杂,但我觉得它构建起了数据结构领域的半壁江山,直接基于 BST 的数据结构有原创 2021-01-16 16:47:04 · 530 阅读 · 0 评论 -
【二叉树2---序列化】各种遍历框架序列化和反序列化二叉树
序列化和反序列化引言和题目描述序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。[独立于编程语言] 例如:JSON在APP中的运用——比如我们经常将变成语言中的结构体序列化成 JSON 字符串,存入缓存或者通过网络发送给远端服务,消费者接受 JSON 字符串然后进行反序列化,就可以得到原始数据了。这就是「序列化」和「反序列化」的目的,以某种固定格式组织字符串,使得数据可以独原创 2021-01-11 00:07:12 · 190 阅读 · 0 评论 -
【数据结构-二叉树】递归框架&数据结构搜索基础入门
【数据结构-二叉树】框架以及数据结构搜索基础入门结合1.框架 + 2.第三章数据机构基础的搜索。原创 2020-12-20 22:06:03 · 412 阅读 · 0 评论 -
【算法思维优先搜索-Ref】回溯&BFS思想的实际解决的一些问题【实践】
注意:结合之前的文章——回溯框架 & BFS框架进行本章的实践和理解大纲回溯算法团灭子集、排列、组合问题回溯算法最佳实践:解数独回溯算法最佳实践:括号生成如何用 BFS 算法秒杀各种智力题...原创 2020-12-20 22:04:15 · 324 阅读 · 0 评论 -
【算法思维优先搜索】回溯&DFS&BFS
深度优先搜索和广度优先搜索是两种最常见的优先搜索方法,他们被广泛地应用在图和树等数据结构中进行搜索。回溯算法就是一个多叉树的遍历问题,关键就是在前序遍历和后序遍历的位置做一些操作。...原创 2020-12-10 10:35:15 · 1462 阅读 · 1 评论 -
【排序算法】算法基础
本文用于刷排序算法相关题目;以及总结和分析基础排序算法。常用排序算法快速排序桶排序原创 2020-12-03 10:38:40 · 210 阅读 · 0 评论 -
【二分查找延伸--实际算法应用】数组类题目
声明:博主是基于labuladong微信公众号文章模板驱动刷题,进行的自我刷题感悟和记录在此。模板详情见labuladong微信公众号文章文末;原创于自己在此基础上的笔记、感悟和自己的code。二分查找到底能运用在哪里?最常见的就是教科书上的例子,在有序数组中搜索给定的某个目标值的索引。再推广一点,如果目标值存在重复,修改版的二分查找可以返回目标值的左侧边界索引或者右侧边界索引。PS:以上提到的三种二分查找算法形式在前文 二分查找算法详解 有代码详解,如果没看过强烈建议看看。抛开有序数组这.原创 2020-12-03 10:33:29 · 401 阅读 · 0 评论 -
【滑动窗口算法思维】数组类题目
目前来说,以上几篇文章属于我们的镇号之宝,一直被其他人模仿,然而从未被超越。????言归正传,鉴于前文 我作了首诗,保你闭着眼睛也能写对二分查找 的那首《二分搜索升天词》很受好评,并在民间广为流传,成为安睡助眠的一剂良方,今天在滑动窗口算法框架中,我再次编写一首小诗来歌颂滑动窗口算法的伟大:关于双指针的快慢指针和左右指针的用法,可以参见前文 双指针技巧汇总,本文就解决一类最难掌握的双指针技巧:滑动窗口技巧,并总结出一套框架,可以保你闭着眼直接套出答案。说起滑动窗口算法,很多读者都会头疼。这个算法技巧原创 2020-11-28 10:06:54 · 376 阅读 · 0 评论 -
【二分查找算法思维】数组类题目
先给大家讲个笑话乐呵一下:有一天阿东到图书馆借了 N 本书,出图书馆的时候,警报响了,于是保安把阿东拦下,要检查一下哪本书没有登记出借。阿东正准备把每一本书在报警器下过一下,以找出引发警报的书,但是保安露出不屑的眼神:你连二分查找都不会吗?于是保安把书分成两堆,让第一堆过一下报警器,报警器响;于是再把这堆书分成两堆…… 最终,检测了 logN 次之后,保安成功的找到了那本引起警报的书,露出了得意和嘲讽的笑容。于是阿东背着剩下的书走了。从此,图书馆丢了 N - 1 本书。二分查找真的很简单吗?并不简原创 2020-11-28 09:36:30 · 498 阅读 · 0 评论 -
【算法思维--双指针技巧】LeetCode数组类题目等
刷题的过程关键是通过 语言刷算法解题的思维过程。只要把题目搞清晰,会做coding好了、这一类都会了,目的就达到了。当然, C++一方面很多书籍在用其表达;另一方面自己之前也学过相关的数据结构,灵活运用在算法方面的能力很强。其它,大项目可以用别的语言。<工具 暂不是大问题。>15题 三数之和解题思路思路:标签:数组遍历首先对数组进行排序,排序后固定一个数 nums[i],再使用左右指针指向 nums[i]后面的两端,数字分别为 nums[L]和 nums[R],计算三个数的和.原创 2020-11-20 21:45:13 · 608 阅读 · 0 评论 -
LeetCode高效率刷题指南、刷题顺序、技巧和进一步提升方法
首先,刷题是为了了解思路;然后,其次才是语言,进行实现;最后,不能一遍就算了 要反复刷且学会刷题。有总结、坚持和结题指南的输出。在前文基础上新增一些想法:刷题思路 —— 大厂攻略前言python 链接刷题顺序——按照 一个类型刷:https://github.com/huxiaoman7/leetcodebook主干开始刷题时,确实是无从下手,因为从序号开始刷,刷到几道题就遇到 hard 的题型,会卡住很久,后面去评论区看别人怎么刷题,也去 Google 搜索最好的刷题方式,发现按题型刷.原创 2020-11-17 21:51:41 · 3536 阅读 · 0 评论 -
LeetCode【力扣】每天刷题计划/进度
文章目录刷题顺序应该掌握三点数据结构算法其他知识刷题技巧第一遍第二遍第三遍第四遍建议腾出固定时间在线编写总结博主后话首先刷题贵在坚持,每天训练 保持头脑 + 回顾多想——即刻畅通.不能为了刷题而刷题,要结合实际的理论\面试[应用] 知识去刷题.并且时常总结、时常回顾.刷题顺序leetcode上刷刷题(多刷easy和middle难度的)ArrayStringMathTr...原创 2019-11-23 21:57:42 · 5729 阅读 · 0 评论