代码改变世界

阅读排行榜

leetcode203. Remove Linked List Elements

2018-09-23 21:33 by legend聪, 146 阅读, 收藏,
摘要: 很经典的一道题,但波波老师讲出了新的东西。设立虚拟结点,因为每次循环cur->next只有头结点无法考虑,但是你要是单独考虑头结点,万一头结点删除你还需要再考虑下一头结点,就形成了很麻烦的while结构。有了虚拟头结点,问题全都解决了。 阅读全文

CCF学生排队

2020-03-07 12:09 by legend聪, 143 阅读, 收藏,
摘要: 这题如果考虑考虑用数组折腾会非常麻烦,如果想到用vector的insert函数和erase函数就会非常舒服的模拟出来。vt.erase(it)之后it就变成了野指针,所以要用it=erase(it),这样it就会自动指向下一个元素。 #include<cstdio> #include<iostrea 阅读全文

经典的堆排序

2020-04-10 00:40 by legend聪, 124 阅读, 收藏,
摘要: #include<cstdio> #include<iostream> #include<vector> #include<algorithm> using namespace std; void heapAdjust(vector<int>&H, int st, int end) { int tm 阅读全文

leetcode138. 复制带随机指针的链表

2020-03-17 18:14 by legend聪, 104 阅读, 收藏,
摘要: 题目的意思比较难理解,分为3步。第一步建立二重链表,第二步random指针的建立,第三步拆分二重链表。 /* // Definition for a Node. class Node { public: int val; Node* next; Node* random; Node(int _val 阅读全文

leetcode54 螺旋矩阵

2020-03-13 01:48 by legend聪, 99 阅读, 收藏,
摘要: 题目的思路是每次确定左上顶点和右下顶点,然后进行一个框的打印,注意边界条件。然后设计一个打单行和单列的算法。一个小错误如果vector为空的话调用.size()方法会引发空指针异常,所以先判空再进行下面的操作。 class Solution { public: vector<int> spiralO 阅读全文