#leetCode

贪心:leetcode 870. Advantage Shuffle、134. Gas Station、452. Minimum Number of Arrows to Burst Balloons、316. Remove Duplicate Letters

870.AdvantageShuffle思路:A数组的最大值大于B的最大值,就拿这个A跟B比较;如果不大于,就拿最小值跟B比较A可以改变顺序,但B的顺序不能改变,只能通过容器来获得由大到小的顺序,并且必须存储相应的index,因为最终需要将选择的A的数值存入与这个B相对应的index下classSolution{pub...

leetcode 293.Flip Game(lintcode 914) 、294.Flip Game II(lintcode 913)

914.FlipGamehttps://www.cnblogs.com/grandyang/p/5224896.html从前到后遍历,遇到连续两个'+',就将两个加号变成'-'组成新的字符串加入到结果中。classSolution{public:vector<string>generatePossibleN...

leetcode 874. Walking Robot Simulation

874.WalkingRobotSimulationhttps://www.cnblogs.com/grandyang/p/10800993.html每走一步(不是没走commands里的一个数字)计算到原点的距离,每走一步都可能遇到障碍物,需要将障碍物的坐标进行存储,以判断是否停止行走。左转90度,右转90度转换成在...

leetcode 149. Max Points on a Line

149.MaxPointsonaLinehttps://www.cnblogs.com/grandyang/p/4579693.html斜率需要考虑分母为0的情况。具体需要考虑两种特殊情况:一是在x相等的时候,斜率是无穷大;二是与当前节点完全相同的时候。解法一:用hash-map存储斜率和斜率出现的次数,其中dupli...
代码星球 ·2020-10-13

lintcode 394. Coins in a Line 、leetcode 292. Nim Game 、lintcode 395. Coins in a Line II

变型:如果是最后拿走所有石子那个人输,则f[0]=true394. CoinsinaLinedp[n]表示n个石子,先手的人,是必胜还是必输。拿1个石子,2个石子之后都是必胜,则当前必败;拿1个石子,2个石子之后都是必败,则当前必胜;如果拿1个石子,2个石子之后有必败,则当前必胜。 classSol...
代码星球 ·2020-10-13

leetcode 361.Bomb Enemy(lintcode 553. Bomb Enemy)

dp分别计算从左到右、从右到左、从上到下、从下到上4个方向可能的值,然后计算所有为‘0’的地方的4个方向的值的最大值 https://www.cnblogs.com/grandyang/p/5599289.htmlclassSolution{public:/***@paramgrid:Givena2Dgrid...

leetcode 91. Decode Ways

91.DecodeWayshttps://www.cnblogs.com/grandyang/p/4313384.html当前位置只可能来自前一个位置和前两个位置的dp,来自前一个位置的话,当前的数字不能是0;来自前两个位置,必须是1到26之间classSolution{public:intnumDecodings(s...
代码星球 ·2020-10-13

leetcode 290. Word Pattern 、lintcode 829. Word Pattern II

290.WordPattern istringstream是将字符串变成字符串迭代器一样,将字符串流在依次拿出,比较好的是,它不会将空格作为流,这样就实现了字符串的空格切割。C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sst...

leetcode 328. Odd Even Linked List

328.OddEvenLinkedList自己最开始的思路:用两个指针分别指向奇偶位置,然后交换两个的数值,然后奇的指针前进两格,偶的指针前进一格,但是这样出来的结果会造成原本偶位置的数之间的顺序打乱正确的思路:也是用奇偶指针,但是是将偶后面的链表节点移动到奇后面,这样不发生顺序的变换。当前的两个指针分别指向当前排好的...

leetcode 138. Copy List with Random Pointer

138.CopyListwithRandomPointer分三步:1.在原有list每个节点的后面增加与原节点值相同的节点    2.在这些新生成的节点中增加随机节点    3.将原有的节点和新生成的节点进行分离注意:if(cur->random)randNode=cur->random->next;...

leetcode 143. Reorder List 、86. Partition List

143. ReorderListhttps://www.cnblogs.com/grandyang/p/4254860.html先将list的前半段和后半段分开,然后后半段进行逆序,然后再连接classSolution{public:voidreorderList(ListNode*head){if(head...

leetcode 108. Convert Sorted Array to Binary Search Tree 、109. Convert Sorted List to Binary Search Tree

108.ConvertSortedArraytoBinarySearchTree这个题使用二分查找,主要要注意边界条件。如果left>right,就返回NULL。每次更新的时候是mid-1,mid+1。自己推一下基本就可以验证了。classSolution{public:TreeNode*sortedArrayT...

leetcode 206. Reverse Linked List(剑指offer16)、92. Reverse Linked List II

无论是1,还是2,删除链表都需要3个节点,只是现在这种最新写法只把cur作为了判断循环的依据,并且下一个节点的生成放在循环内。 206.ReverseLinkedList之前在牛客上的写法:错误代码:classSolution{public:ListNode*ReverseList(ListNode*pHea...

leetcode 54. Spiral Matrix 、59. Spiral Matrix II

54题是把二维数组安卓螺旋的顺序进行打印,59题是把1到n平方的数字按照螺旋的顺序进行放置  54.SpiralMatrixstart表示的是每次一圈的开始,每次开始其实就是从(0,0)、(1,1)这种开始的。用endx、endy来表示每次转圈的x、y方向的终止位置,方便后面进行边界条件设置。注意:...
代码星球 ·2020-10-13

leetcode 48. Rotate Image

48. RotateImage1.这个题是顺时针旋转90度,方法是:先以右对角线为轴对称交换,然后以中间行为轴进行交换2.逆时针旋转90度是以左对角线为轴对称交换,然后以中间行为轴进行交换3.旋转180度,直接以最中间那个数为对称点进行交换以对称轴做交换,第一个数组的i和第二个数组的j对应位置,第一个数组的j...
代码星球 ·2020-10-13
首页上一页...1718192021...下一页尾页