LeetCode cpp最新中文题解.pdf
LeetCode cpp最新中文题解.pdfLeetCode cpp最新中文题解.pdfLeetCode cpp最新中文题解.pdf目录3.4 Add binary615.1.5 Binary Tree Level Or-3.5 Longest Palindromic Substring. 62der traversal il3.6 Regular Expression Matching665.1.6 Binary Tree Zigzag3.7 Wildcard Matching67Level Order traversal. 963.8 Longest Common Prefix5.1.7 Recover Binary Search3. 9 Valid Number70Tree983.10 Integer to roman725. 1. 8 Same Tree3. 11 Roman to Integer735.1.9 Symmetric Tree1003.12 Count and Say745.1.10 Balanced Binary Tree.. 1023. 13 Anagrams755.1.11 Flatten Binary Tree to3. 14 Simplify Path76Linked List1033. 15 Length of Last Word775.1. 12 Populating Next RightPointers in each node ii 105第4章栈和队列7952二叉树的构建10641栈795.2.1 Construct Binary Tree4Valid Parentheses79from Preorder and In4.1.2 Longest valid Parenorder Traversa106theses805.2.2 Construct Binary Tree4.1.3 Largest Rectangle infrom Inorder and posHistogram82torder Traversal1074.1.4 Evaluate reverse pol-53二叉查找树108ish notation845.3. 1 Unique Binary Search4.2队列85Trees.1085.3.2 Unique Binary Search第5章树86Trees li.1105.1二叉树的遍历865.3.3 Validate Binary Search5.1.1 Binary Tree PreorderTreeTraversal865.3. 4 Convert Sorted array to5.1.2 Binary Tree InorderBinary Search Tree...112Traversal885.3.5 Convert Sorted List to5.1. 3 Binary Tree PostorderBinary Search Tree113Traversal9054二叉树的递归.1145. 1. 4 Binary Tree Level Or5.4.1 Minimum Depth of Bider traversal)2nary lree115目录5.4.2 Maximum Depth of Bi8.3.,2重新实现 next permunary Tree116tation1425.4.3 Path Sum11783.3递归.1435.4 4 Path Sum il118 8.4 Permutations II1445.4.5 Binary Tree Maximum8.4.1 next permutation... 144Path Suum11984.2重新实现 next permu5.4.6 Populating Next Righttation144Pointers in each node 120843递归1445.4.7 Sum Root to Leaf num8.5 Combinations146bers2185.1递归1468.5.2迭代147第6章排序1238.6 Letter Combinations of a phone6.1 Merge Sorted Array123umber1476.2 Merge Two Sorted Lists12486.1递归1486.3 Merge k Sorted Lists124862迭代96.4 Insertion Sort List125第9章广度优先搜索1506.5 Sort list1269.1 Word Ladder1506.6 First Missing Positive1279.2 Word Ladder il1546.7 Sort Colors1289.3 Surrounded regions162第7章查找94小结16413194.l适用场景1647.1 Search for a range131942思考的步骤7.2 Search Insert Position.13294.3代码模板1657. 3 Search a 2D Matrix133第10章深度优先搜索173第8章暴力枚举法13510.1 Palindrome Partitioning1738.1 Subsets13510.2 Unique Paths1768.1.1递归1350.2.1深搜1768.1.2迭代.1371022备忘录法.1768.2 Subsets il13810.23动规177821递归13810.24数学公式1788.2.2迭代.14110.3 Unique Paths Il1798. 3 Permutations14210.3.1备忘录法1798.3.1 next permutation14210.3.2动规.180目录10.4 N-Queens1813.4 Maximal rectangle21310.5 N-Queens II18413.5 Best Time to Buy and Sell Stock10.6 Restore ip addresses186.21410.7 Combination Sum18813.6 Interleaving String21510.8 Combination Sum Il18913.7 Scramble String21710.9 Generate Parentheses.19013. 8 Minimum Path Sum.22210.10 Sudoku solver19213.9 Edit Distance22410.11 Word Search.19313. 10 Decode Ways.22610.12小结19513. 11 Distinct sub22710.12.1适用场景19513. 12 Word Break22810.122思考的步骤19513 13 Word Break il2300.12.3代码模板197第14章图23210.12.4深搜与回溯法的区別.19714. 1 Clone Graph23210.12.5深搜与递归的区别..197第15章细节实现题235第11章分治法19915.1 Reverse Integer2351.1 Pow(x, n)19915.2 Palindrome Number.23611. 2 Sqrt(x)20015.3 Insert Interval237第12章贪心法20115.4 Merge Intervals23812.1 Jump game20115.5 Minimum Window Substring23912.2 Jump game II15.6 Multiply Strings24112. 3 Best Time to buy and Sell stock 20415.7 Substring with Concatenation12. 4 Best Time to buy and sell stock l205of all words24412. 5 Longest Substring Without re15.8 Pascal,s Triangle245peating Characters20615.9 Pascals Triangle Il24612.6 Container with Most Water.. 207 15.10 Spiral Matrix24715.11 Spiral matrix II248第13章动态规划20915.12 ZigZag Conversion25013. 1 Triangle20915.13 Divide Two Integers25113.2 Maximum Subarray15. 14 Text Justification25313.3 Palindrome Partitioning II1215.15 Max Points on a line255目录第1章编程技巧在判断两个浮点数a和b是否相等时,不要用a==b,应该判断二者之差的绝对值fabs(a-b)是否小于某个阈值,例如1e-9。判断一个整数是否是为奇数,用x%2!=0,不要用x%2=1,因为ⅹ可能是负用char的值作为数组下标(例如,统计字符串中每个字符岀现的次数),要考虑到char可能是负数。有的人考虑到了,先强制转型为 unsigned int再用作下标,这仍然是错的。正确的做法是,先强制转型为 unsigned char,再用作下标。这涉及C十整型提升的规则,就不详述了。以下是关于STL使用技巧的,很多条款来自《 Effective STL》这本书。vector和 string优先于动态分配的数组首先,在性能上,由于 vector能够保证连续内存,因此一旦分配了后,它的性能跟原始数组相当;其次,如果用new,意味着你要确保后面进行孓 delete,一旦忘记了,就会出现BUG,且这样需要都写一行 delete,代码不够短再次,声明多维数组的话,只能一个一个new,例如int** ary = new int*[row_num];for(int i=0: i< row num; ++1)ary [i] new int [col_num]用 vector的话一行代码搞定vectorary(row_num, vector(col_num, 0))使用 reserve来避免不必要的重新分配第2章线性表这类题目考察线性表的操作,例如,数组,单链表,双向链表等。2数组2.1.1 Remove Duplicates from Sorted array描述Given a sorted array, remove the duplicates in place such that each element appear only onceand return the new lengthDo not allocate extra space for another array, you must do this in place with constant memoryFor example, Given input array A =[1, 1, 2Your function should return length =2, and a is now [1, 2]分析无代码1/ LeetCode, Remove Duplicates from Sorted Array//时间复杂度0(n),空间复杂度0(1)class Solution tublicint removeDuplicates(vector& nums)tif (nums empty o) return 0;int index =ofor (int i =1: i nums size: 1++ iif (nums [index] ! nums [i])nums [++index]= nums [i]return index 12.1数组代码2//LeetCode, Remove Duplicates from Sorted Array/使用STL,时间复杂度0(n),空间复杂度0(1)class Solution ipublicint removeDuplicates(vector& nums)treturn distance(nums begin(), unique(nums begin(), nums end ())代码3/ LeetCode, Remove Duplicates from Sorted Array/使用STL,时间复杂度0(n),空间复杂度0(1)lass Solution fublicint removeDuplicates(vector& nums)treturn distance(nums begin(, removeDuplicates(nums begin(, nums end(), nums begintemplateOutIt removeDuplicates(InIt first, InIt last, OutIt output)thile (first last)i*output++ = *firstfirst upper_bound(first, last, *firstreturn output相关题目Remove Duplicates from Sorted Array I,见§2.1.22.1.2 Remove Duplicates from Sorted Array II描述Follow up for"Remove Duplicates " What if duplicates are allowed at most twice?For example, Given sorted array a =[1, 1, 1, 2, 2, 3]Your function should return length=5, and A is now [1, 1, 2, 2, 3分析加一个变量记录一下元素出现的次数即可。这题因为是已经排序的数组,所以一个变量即可解决。如果是没有排序的数组,则需要引入一个 hashmap来记录出现次数。4第2章线性表代码1// Leet Code, Remove Duplicates from Sorted Array II//时间复杂度0(n),空间复杂度0(1)//qauthorhex108(https://github.com/hex108)class Solution tublicint removeDuplicates(vector& nums)tif (nums size(
- 2020-12-04下载
- 积分:1
matlab模型预测控制
介绍MPC,简介预测控制动态矩阵能直接处理带有纯滞后的对象,对大惯性有很强的适应能力,又有良好的跟踪性能和较强的鲁棒性,并且对模型精度要求低,所以在工业过程中有很强的适用性。本文针对DMC算法进行研究,并在此基础上用matlab进行了系统仿真验证了该算法的优点。口经验交流口仪器仪表用户P已知的情况下,控制时域长度M越小,越难保证输出在各采能的 Window标准图形用户界面,使优化问题操作简单方便。样点紧密跟踪期望输出值,系统的响应速度比较慢,但容易得在 Matlab制作图形用户界而(GUI)的设计环境下,用M文件到稳定的控制和较好的鲁棒性;控制时域长度M越大,控制来进行CU编程,使GU设计变得简单、快捷。的机动性越强,能够改善系统的动态响应,增大了系统的灵活首先在Meab的命令窗下输人 guide命令或者利用文件性和快速性,提高控制的灵敏度,但是系统的稳定性和鲁棒性菜单中的new选项下的GUI,即可以进入CUI设计窗口。从变差。因此,控制时域长度的选择应兼顾快速性和稳定性。窗口的左侧工具栏中选取需要的控件,绘制在右侧锥形窗口;4)控制加权系数双击各控件图标,即打开该控件属性对话框,对其进行属性设控制加权系数主要用于限制控制增量的剧烈变化,使控置。保存图形界面时,系统将直动生成一个同名的m文件,打制量的变化趋于平缓,以防止超出限制范围或发生剧烈振荡,开此程序文件,对图形界面各控廾的回调函数 Callback()增减少对系统的过大冲击。增加控制值加权系数的值,控制作加所需的程序代码,以完成各种操作。设计完成之后的得到用减弱,闭环系统稳定,输出响应速度减慢,有益于增加系统的界面如图4所示。的稳定性;但过人的控制加权系数会使控制量的变化极为缓动态矩阵控制算法仿真慢,系统得不到及时的调节,反而会使动态特性变坏7。拴制牌出图积样周期预測时域斑度「F动态矩阵控制算法的优点I)直接在控制算法中考虑预测变量和控制变量的约束条控制时域长度M=1件,用满足约束条件的范围求出最优预测值输入戏象横型控淛权系数2)把控制变量与预测变量的权系数矩阵作为设计参数,系统设定值在设计过程中通过仿真调节鲁棒性好的参数值。3)预测变量和控制变量较多的场合,或者控制变量的的设定在给出的目标值范围内,只是具有自由度,预测变量的定图4动态矩阵控制算法界面设计常状态值被认为是有无数组组合。5结束语4)从受控对象动态特性设定到最后作为仿真来确定控制性由上述仿真结果可以知道,动态矩阵控制效果比传统能为止。DMC算法以直接作为控制量,在控制中包含了数字积PID的控制效果好。动态矩阵控制采用工程上容易得到的阶分环节,因此,即使在模型失配的情况下,也能得到无静差控制。跃响应作为数学模型、运算量小、算法简单、在线实时方便,具4仿真研究有良好的调节品质和很强的鲁棒性,能抑制被控对象的大迟针对被控对象C(s)=12滞特性,能够满足生产现场的需要,获得满意的控制效果,因17.2s+进行仿真,取采样周期而有良好的应用前景。同时基于 Matlab汝计实现了动态矩阵T=2s,模型时域长度为N=90,预测时域长度P=6,控制时控制算法图形用户界面,为动态矩阵控制算法提供了一个简域长度M=1,控制权系数A=1,系统设定值y,=1。对模型在单实用的平台。由于 Matlab具有良好、开放的可扩展性,在应用阶跃扰动下进行仿真,得到如图2所示的控制曲线,可以知道中,用户可以根据实际问题编写相应的函数文件,在CU平台输控制效果较好。入要修改的参数即可完成优化求解操作简单、非常实用。口与传统的PID控制器的控制效果进行比较,其中传统参考文献PD的参数采用工程整定法中的动态特性参数法(又称Z-NL1]李国勇.智能控制及其 MATLAB实现[M]北京:电子工业整定法),得到的参数为Kp=1.5,T1=1,T=0.5,仿真结果出版社,2005:285-289如图3所示。2]席裕庚预测控制[M].北京:国防工业出版社,1993[3]周福恩,毕效辉.动态矩阵控制算法在过程控制中的应用研究[J].南通航运职业技术学院学报,2005,4(1)4345[4]何同祥,常宁青.动态矩阵控制算法在工业电加热炉温度控制中的应用[J.仪器仪表用户,2011,(01):28-3004[5}李玉红,刘红军,王东风,韩璞.一种新型的动态矩阵控制算法及仿真研究[J]计算机学报,2005,22(2):103-1091015公23[6]周忠海,张涛,陈哓高.基于动态矩阵控制算法的电加热炉图2DMC仿真纬果图图3传统Pm仿真结果图温度控制系统[J].山东科学,2005,18(5):7073我们知道传统的PID控制超调量过大,稳定时间长,控制7]触晓红,周佳精通GUI图形界面编程[M].北京:北京大学模型和参数需要比较精确,否则控制性能不会很好,而采用动出版社,2003作者简介:杨丽华(1987-),女,在读硕士研究生,主要从事预测控制方态矩阵控制算法则大大地抑制了超调量,消除了振荡,也缩短面的研究工作;赵文杰(1969-),男,华北电力大学控制科学与工程学了平衡时间,控制效果好。院副教授,主要从事热工过程的信息融合与先进控制方面的研究根据上述动态矩阵控制算法的基本流程及其操作编制成工作相应的m函数文件。这个设计包含动态矩阵控制算法优化功收稿日期2012041866EcVo.192012No,4欢迎光临本刊网站http://www.yqybyh.com
- 2020-12-02下载
- 积分:1