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
一种改进的TOA——AOA混合定位算法
混合定位中很不错的一篇文章,看过之后很受启发在TOA和AOA误差服从零均值的高斯分布时,以上⑧无AOAQ阵中AOATOA/AOA混合定位算法的克拉美一罗下界(CRLB)为:校准离差取rP=(GQG)90Q阵中AOA校准离差取(x-x1)/其中:G=(x-x r(y-m)/r(19)洲6050(x)2(+(y-y))(x-x)(+(y-y)0.020.040.060080.100.12(x-x1)AOA标准离差(stda,单位radx-图1都市环境中算法性能比较3仿真与分析为了检验和比较算法在实际蜂窝网络信道环境中的定位性能,假定在一蜂窝网络中,小区半径为2500m,参与TOA测量的BS为服务BS和4个相邻的BS,其位置坐标分别为(0,0),(4330,2500),(4330,2500),(0,5000),(-4330,2500)。假定由测量系统造成的TOA测量误差服从均值为0,方差为30米的高斯分布,信道环境造成的NIOS误差满是TP1.5信道模型14,服务BS始终能够提供AOA,AOA测量误差服从均值为0和一定标准差的高斯分布。图1为都市环境中假定只有服务BS能视距(LOS)传播时,MS在服务小区内均匀分布,在不同AOA标准差下算法定位误差在125m内的概率。图中可见,Q矩阵中σα的取值对算法定位性能有很大影响,在AOA标准差较小时用TOA测量值η近似替代σa能取得更好的定位性能,这是由于WLS算法采用了Q阵加权。此外,120只要AOA测量值达到一定精度(标准差小于一定值),采用10-10A-A0A00TOAAOA混合定位法就能取得比单纯TOA定位更好的性能。图29080为乡村环境中在不同AOA标准差下,由单纯TOA及 TOA/AOA70定位法(Q矩阵中取n=r)得到的由均方根误差(RMSE)表示的定位性能。由图2可见,乡村环境中由于TOA测量精度较高,30对AOA的精度要求也高。只有当AOA标准差更小(小于10-3)AOA标准离差(og)时,混合定位算法才能取得比单纯TOA定位更好的性能。图2乡村环境中算法性能比较为了检验MS与服务BS距离对算法定位性能的影响,在一般都市环境中可以假定MS位于与服务BS具有不同距离的两个位置(1200,0)和(2400,0)分别进行定位估计,五个BS具有非视距TOA测量值的概率分别为:0、0.2、04、0.6、0.8、1,服务BS能够提供的AOA测量误差分别服从均值为0,标准差为01、0.0lrad的高斯分布,Q矩阵中用r近似替代σn,对每个位置在每种条件下分别进行100次测量,算法在无AOA及具有两种标准差的AOA时的定位结果(RMSE)如图3、4所示仿真结果表明:AOA参与卜AOA标准离差=001AOA标准离差=0,01定位只有在AOA本身误差不大AOA标准离差=0.1AOA标准离差=0.1无AOA无AOA的情况下,才能对定位性能有改200善;如果AOA本身误差增大150则对TOA定位结果并不会有改l00善;MS距离服务BS越近,则50采用混合定位算法的效果越好。00.00.204060.810000.20.40.608104结论BS非视距概率Bs非视距概率图3个同标准差时算法图4不同标准差时算法本文的分析和仿真结果表性能比较(1200,0)性能比较(2400,0)明,只要服务BS提供的AOA测量值达到一定精度,合理选择Q矩阵中AOA标准差取值,本文提出的 TOA/AOA混合定位算法就o1994-2012ChinaAcademicJournalElectronicPUblishingHouseAllrightsreservedhttp:/www.cnki.neto1994-2012ChinaAcademicJournalElectronicPUblishingHouseAllrightsreservedhttp:/www.cnki.net
- 2020-12-02下载
- 积分:1