对即将找工作的大学生,研究生都爱刷leetcode的题目,但是刚刚接受无法适从,或是一时半会儿想不到解法,没关系,leetcode题解PDF可一带你慢慢了解思路过程。
目录3.4Addbinary615.1.5BinaryTreeLevelOr-3.5LongestPalindromicSubstring.62dertraversalil3.6RegularExpressionMatching665.1.6BinaryTreeZigzag3.7WildcardMatching67LevelOrdertraversal.963.8LongestCommonPrefix5.1.7RecoverBinarySearch3.9ValidNumber70Tree983.10Integertoroman725.1.8SameTree3.11RomantoInteger5.1.9SymmetricTree1013.12CountandSay745.1.10BalancedBinaryTree..1023.13Anagrams755.1.11FlattenBinaryTreeto3.14SimplifyPath76LinkedList1033.15LengthofLastWord775.1.12PopulatingNextRightPointersineachnodeii105第4章栈和队列7952二叉树的构建1074.1栈795.2.1ConstructBinaryTree4ValidParentheses79fromPreorderandIn4.1.2LongestvalidParenorderTraversatheses805.2.2ConstructBinaryTree4.1.3LargestRectangleinfromInorderandposHistogram82torderTraversal1084.14Evaluatereversepol-53二叉查找树109ishnotation845.3.1UniqueBinarySearch4,2队列85Trees5.3.2UniqueBinarySearch第5章树86Treesli.1105.1二叉树的遍历865.3.3ValidateBinarySearch5.1.1BinaryTreePreorderTreeTraversal865.3.4ConvertSortedarrayto5.1.2BinaryTreeInorderBinarySearchTreel12Traversal885.3.5ConvertSortedListto5.1.3BinaryTreePostorderBinarysearchtree113Traversal9054二叉树的递归1155.1.4BinaryTreeLevelOr5.4.1MinimumDepthofBidertraversalnarylree115目录5.4.2MaximumDepthofBi8.32重新实现nextpermunaryTree116tation1425.4.3PathSum117833递归.1435.44PathSumil1188.4PermutationsII1445.4.5BinaryTreeMaximum8.4.1nextpermutation...144PathSuum119842重新实现nextpermu5.4.6PopulatingNextRighttation144Pointersineachnode12084.3递归1445.4.7SumRoottoLeafNum8.5Combinations146bers122851递归146852迭代147第6章排序1238.6LetterCombinationsofaphone6.1MergeSortedArray123umber1476.2MergeTwoSortedLists12486.1递归1486.3MergekSortedLists124862迭代96.4InsertionSortList125第9章广度优先搜索1506.5Sortlist1269.1WordLadder1506.6FirstMissingPositive1279.2WordLadderil..1526.7SortColors289.3Surroundedregions154第7章查找94小结15613194.1适用场景1567.1Searchforarange131942思考的步骤.1567.2SearchInsertPosition.13294.3代码模板1577.3Searcha2DMatrix133第10章深度优先搜索162第8章暴力枚举法13510.1PalindromePartitioning..1628.1Subsets13510.2UniquePaths1658.1.1递归1350.2.1深搜1658.1.2迭代.13710.22备忘录法.1658.2Subsetsil13810.23动规166821递归1381024数学公式167822迭代.14110.3UniquePathsIl1688.3Permutations14210.3.1备忘录法1688.3.1nextpermutation14210.3.2动规.169目录10.4N-Queens16913.4Maximalrectangle19910.5N-QueensII17213.5BestTimetoBuyandSellStock10.6Restoreipaddresses17320010.7CombinationSum17413.6InterleavingString20110.8CombinationSumIl17513.7ScrambleString20310.9GenerateParentheses.17713.8MinimumPathSum20810.10Sudokusolver17813.9EditDistance21010.11WordSearch.18013.10DecodeWays.21210.12小结18113.11DistinctSubsequences21310.12.1适用场景1813.12WordBreak21410.122思考的步骤1811313WordBreakil21610.12.3代码模板183第14章图21810.12.4深拽与回溯法的区别.18414.1CloneGraph10.12.5深搜与递归的区别..184第15章细节实现题221第11章分治法18515.1ReverseInteger2211.1Pow(x,n)18515.2PalindromeNumber222qrt(x18615.3InsertInterval223第12章贪心法18715.4MergeIntervals22412.1Jumpgame18715.5MinimumWindowSubstring..22512.2JumpgameIl18815.6MultiplyStrings22712.3BestTimetobuyandsellstock19015.7SubstringwithConcatenation12.4BestTimetobuyandsellstock191ofallwords23012.5LongestSubstringWithoutre15.8Pascal,sTrianglepeatingCharacters19215.9PascalsTriangleIl23212.6ContainerwithmostWater.19315.10Spiralmatrix23315.11SpiralmatrixII234第13章动态规划19515.12ZigZagConversion23613.1Triangle19515.13DivideTwoIntegers23713.2MaximumSubarray19615.14TextJustification23813.3PalindromePartitioningII19815.15MaxPointsonaline目录第1章编程技巧在判断两个浮点数a和b是否相等时,不要用a=-b,应该判断二者之差的绝对值fabs(a-b)是否小于某个阈值,例如1e-9。
判断一个整数是否是为奇数,用x%2!=0,不要用x%2==1,因为x可能是负数用char的值作为数组下标(例如,统计字符串中每个字符出现的次数),要考虑到char可能是负数。
有的人考虑到了,先强制转型为unsignedint再用作下标,这仍然是错的。
正确的做法是,先强制转型为unsignedchar,再用作下标。
这涉及C++整型提升的规则,就不详述了。
以下是关于STL使用技巧的,很多条款来自《EffectiⅤveStL》这本书。
vector和string优先于动态分配的数组首先,在性能上,由于vector能够保证连续内存,因此一旦分配了后,它的性能跟原始数组相当其次,如果用new,意味着你要确保后面进行了delete,一旦忘记了,就会岀现BUG,且这样需要都写一行delete,代码不够短再次,声明多维数组的话,只能一个一个new,例如:int**ary=newint*[row_num];for(inti=0:i<rownum;++1)ary[i]newint[col_num]用vector的话一行代码搞定,vector<vector<int>>ary(row_num,vector<int>(col_num,0))使用reserve来避免不必要的重新分配第2章线性表这类题目考察线性表的操作,例如,数组,单链表,双向链表等。
21数组2.1.1RemoveDuplicatesfromSortedarray描述Givenasortedarray,removetheduplicatesinplacesuchthateachelementappearonlyonceandreturnthenewlengthDonotallocateextraspaceforanotherarray,youmustdothisinplacewithconstantmemoryForexample,GiveninputarrayA=[1,1,2Yourfunctionshouldreturnlength=2,andaisnow[1,2]分析无代码1/LeetCode,RemoveDuplicatesfromSortedArray/时间复杂度0(n),空间复杂度0(1)classSolutiontublicintremoveDuplicates(intA[],intn)tlf(n==oreturnointindex=0:for(inti=1:i<n:i++iif(Alindex!alidA[++index]=Alireturnindex12.1数组代码2//LeetCode,RemoveDuplicatesfromSortedArray//使用STL,时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(intA[,intn)treturndistance(A,unique(A,An))代码3/LeetCode,RemoveDuplicatesfromSortedArray/使用STL,时间复杂度0(n),空间复杂度0(1)lassSolutionfublicintremoveDuplicates(intA[],intn)treturnremoveDuplicates(A,A+n,A)-A;template<typenameInIt,typenameoutit>OutItremoveDuplicates(InItfirst,InItlast,OutItoutput)thile(firstlast)i*output++=*firstfirstupper_bound(first,last,*firstreturnoutput相关题目RemoveduplicatesfromSortedArrayIl,见§2.1.22.1.2RemoveDuplicatesfromSortedArrayII描述Followupfor"RemoveDuplicates"Whatifduplicatesareallowedatmosttwice?Forexample,Givensortedarraya=[1,1,1,2,2,3]Yourfunctionshouldreturnlength=5,andAisnow[1,1,2,2,3分析加一个变量记录一下元素出现的次数即可。
这题因为是已经排序的数组,所以一个变量即可解决。
如果是没有排序的数组,则需要引入一个hashmap来记录出现次数4第2章线性表代码1//LeetCode,RemoveDuplicatesfromSortedArrayII/时间复杂度0(n),空间复杂度0(1)//qauthorhex108(https://github.com/hex108)classSolutiontublicintremoveDuplicates(intA[],intn)tlf(n<=2returnnintindex=2for(inti=2:in:1++)if(all]!Alindex-2])ALindex++]=Ali]returnindex;代码2下面是一个更简洁的版本。
上面的代码略长,不过扩展性好一些,例如将occur<2改为ocur<3,就变成了允许重复最多3次。
//LeetCode,RemoveDuplicatesfromSortedArrayII//@author虞航仲(http://weibo.com/u/1666779725)//时间复杂度0(n),空间复杂度0(1)classSolutionipublicintremoveDuplicates(intA[],intn)tmtindex=ofor(intif(i>0&&i<1&&A[i]==A[i-1]&&A[i]==A[i+1])continueAlindex++]=Alireturnindex;相关题目RemoveDuplicatesfromSortedArray,见§2.1.12.1.3SearchinRotatedSortedArray描述Supposeasortedarrayisrotatedatsomepivotunknowntoyoubeforehand
2024/12/7 0:08:16 1.03MB leetcode题解
1
第一章1、构成现代通信网的要素有哪些?它们各自完成什么功能?它们之间相互通信通过什么机制实现?答:(1)从硬件结构来看:由终端节点、变换节点、业务节点、传输系统构成。
功能:完成接入交换网的控制、管理、运营和维护。
(2)从软件结构来看:它们有信令、协议、控制、管理、计费等。
功能:完成通信协议以及网络管理来实现相互间的协调通信。
(3)通过保持帧同步和位同步、遵守相同的传输体制。
2、在通信网中交换节点主要完成哪些功能?无连接网络中交换节点实现交换的方式与面向连接的网络中交换节点的实现方式有什么不同?分组交换型网络与电路交换型网络节点实现交换的方式有什么不同?答:(1)完成任意入线的信息到指定出线的交换功能(2)无连接型网络不用呼叫处理和记录连接状态,但是面向连接的网络需要。
(3)电路交换的交换节点直接在预先建立的连接上进行处理、时延小,分组交换以“存储—转发”方式工作,时延大。
3、现代通信网为什么要采用分层结构?画出对等层之间的通信过程?答:(1)降低网络设计的复杂度、方便异构网络间的相互连通、增强网络的可升级性、促进了竞争和设备制造商的分工。
(2)图略
2024/12/7 0:40:28 66KB 通信网 答案
1
因服务器部署,需将原2000SERVER上的共享文件转移到另一2003SERVER中,因文件夹权限设置比较复杂,故从微软官方网站下载了FSMT工具,安装要求得先安装.NETFramework2.0以上版本,然后就是安装FSMT工具了,将FSMT安装在2003SERVER中,完成之后运行FSMT,新建项目,指定存储记录的位置,省略DFS,指定迁移的目标位置(如E:),然后是加入服务器,输入2000SERVER名称确定,此时2000SERVER下的共享文件夹就都出来了,选择要转移的共享文件夹,然后是继续,一直到文件迁移完成,还可以查看迁移过程中有没错误。
当然还可以使用备份的方法(BackupExce、BES)DFS……例如:用NTBackup备份后再恢复至目标盘上,文件权限也不改变,具体操作我没实际操作过,感觉所花费的时间相对FSMT要长些。
成功案例、具体操作如下:网上转接目的:把在DC上的文件服务器,迁移到一台成员服务器.环境如下:先在DC上创建用户a,建立共享文件夹share,在共享文件夹的子文件夹赋与a权限做成个人文件夹.在share文件夹上给everyone共享权限是更改,NTFS权限如图.子文件夹权限也如下目的是用于验让权限的转移.a文件夹放一些文件.建立完了一个文件服务器,接下来就是把权限内容转移到成员服务器啦.现在到成员服务器以administrator的身份登录,安装FSMT工具包.输入使用信息,安装类型.安装成功.打开FSMT用于迁移文件服务器的工具,还可用于DFS,在这里我就不详细介绍.打开以后,如图,弹出一个欢迎向导,创建一个用于保存转移文件服务器日志的位置,名称.去掉DFS按钮,因为我没用到DFS.输入保存文件服务器的新位置,会以DC的FQDN作为文件夹,完成向导.这时候就可以做转移的操作啦,选择要转移的服务器,转移的文件夹.就是DC的FQDN名称,共享文件夹share.接着按继续,执行下一步的操作.检查完,准备复制.最后签定,弹出警告信息,说之前的共享将会被停掉,进行转移工作.成功转移,按报告可以看到更多信息结果如下:在C盘生成文件夹.权限验证.子文件夹权限以及文件.Ok,到这里就结束了,一切看起来都很美妙。
不过需要注意的是,此工具是迁移域环境下的文件服务器,其他环境不实用。
2024/12/6 16:02:04 1.31MB FSMT 文件服务迁移工具
1
毕业前最好的课程实习成果!基于Myeclipse+Mysql实现。
前台网站精美页面展示图书浏览信息,导航栏对所有图书分类导航,主页显示新书图片轮播,提供新书上榜、今日折扣、热点图书、书店公告相关模块信息。
对相关图书可进行详细信息简介等浏览,其中还包括图书图片展示、图书评论信息,下方还提供同类图书推荐展示。
页面提供图书信息查询。
会员注册与登录,可将图书添加到关注或者购物车,并可删改,系统自动结算购物清单总价,提交购书信息完成订单,并可评论相关图书。
后台对整个网站系统进行管理,包括首页信息、轮播图片管理、网站公告管理、折扣图书管理、友情链接管理、图书信息管理增删改、会员管理、评论信息管理等等。
资源还包含系统的设计报告,其内容包括系统设计概述、系统的功能需求、建立需求模型、系统分析、系统设计、数据库设计、详细设计实现、个人遇到的困难与获得的主要成果、测试与运行记录、完成结果分析与个人小结、文档清单、项目分工进度说明。
2024/12/5 22:19:13 4.74MB 网上书店 Java jsp mysql
1
实现一个较为完整的IT在线学习网站。
提供学习教程,适合不同要求的学习人群。
主要模块分为用户模块,课程模块,互动模块,后台管理模块。
用户模块主要有用户的注册、登录验证,个人信息的展示修改,个人学习进度记录,教师的申请。
课程模块主要有栏目分层管理,视频和文章课程展示,课程增删改。
2024/12/5 8:20:25 3.42MB html css javascript
1
基于QT的扫雷游戏,有初中高级和自定义游戏级别,还有排行榜来记录最短过关时间,扫雷规则与网上规则一致
2024/12/5 1:23:26 78KB 扫雷游戏
1
WS445.13-2013电子病历基本数据集第13部分:住院病程记录
1
本设计是基于基于STM32的OV5640的一个车牌识别+停车场系统,单片机使用的正点原子的F407最小系统板,LCD使用的是正点原子的4.3寸电容式触摸屏,摄像头是正点原子的OV5640。
主要实现功能:识别车牌,系统记录该车出入。
2024/12/3 17:54:07 20.79MB 图像识别 stm32
1
内容:需求分析,概要设计,详细设计,测试文档,实验报告。
汇报ppt目标:该项目的宗旨在于打造可信、可靠、安全、共享的版权管理平台,利用“分布式数据共享”、“共识算法”、“密码学”等技术,在区块链上记录所有对版权作品的确权(登记),以及后续的交易(授权)。
区块链技术有助于版权管理平台自证清白,使平台具有强大的公信力,利于推广、打造健康绿色的版权生态系统
2024/12/3 13:07:41 7.59MB 数据库大作业 版权管理 数据库 MySQL
1
在大学课堂里,老师在课堂上考勤和提问是很频繁的行为。
把学生名单按照txt格式导入,然后点击开始按钮,学生的姓名就会随机在界面上滚动,点击停止就会暂停滚动,类似于抽奖。
起到一个随机点名和随机考勤的作用。
可以导出点到名字的名单,记录迟到结果。
2024/12/1 19:24:46 1.6MB C# 课堂随机考勤 随机点名
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡