摘要: 190. 颠倒二进制位 2021年3月29日 两种方法,分治和-n&n -n&n 关于这个方法,具体原理可看lowbit。 我们拿一个最大值,\(2^{31}\) 颠倒数位,观察一下,对于第\(k\)位,就相当于变成\(2^{31-k}\) class Solution { public: uint 阅读全文
posted @ 2023-11-30 15:57 CrossAutomaton 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 173. 二叉搜索树迭代器 2021年3月28日 让你实现二叉搜索树的迭代器,实现中序遍历 \(next()\)返回元素,并使迭代器下移一个 \(hasnext()\)返回是否存在 两种方法,非递归和递归 递归写法 没啥难度,就普通的遍历,将数值存入 queue就是了 class BSTIterat 阅读全文
posted @ 2023-11-30 15:51 CrossAutomaton 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 61. 旋转链表 2021年3月27日 将链表每个节点向右移动 \(k\)个位置 首先,假设链表长度为\(len\) 当\(k<len\)时,相当于后\(k\)位移到前面 当\(k>len\)时,令\(k\%=len\),然后再移动即可 class Solution { public: ListNo 阅读全文
posted @ 2023-11-30 15:50 CrossAutomaton 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 83. 删除排序链表中的重复元素 2021年3月26日 删除排序链表中的重复元素II的简化版,while套while就行 为了时间,指针都不删除吗? class Solution { public: ListNode* deleteDuplicates(ListNode* head) { ListN 阅读全文
posted @ 2023-11-30 15:49 CrossAutomaton 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 82. 删除排序链表中的重复元素 II 2021年3月25日 ​ 数据量300,数据大小[-200,200] ​ 题意很简单,就考验你指针的使用。 ​ 两种方法 桶排序暴力法 思路很简单,加个100的偏移量,然后全都存下来,再倒着存进链表里返回即可。 class Solution { public: 阅读全文
posted @ 2023-11-30 15:47 CrossAutomaton 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 456. 132模式 2021年3月24日 1e4的数据,我\(O(n^2)\)都能给你过了,就不能1e5的数据吗 单调栈经典例题(๑•̀ㅂ•́)و√ 倒着遍历,维护一个递减的单调栈。 两个方法: 第一个方法 记录所有从栈里弹出的所有数的最大值\(maxx\),这个是2 栈顶就是3 将要进的值\(n 阅读全文
posted @ 2023-11-30 15:45 CrossAutomaton 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 341. 扁平化嵌套列表迭代器 2021年3月23日 没有代码提示的我快死了 就是个遍历……只要知道函数和方法就没什么难度 注意尝试迭代,不要用递归 class NestedIterator { private: int curInteger; stack<pair<vector<NestedInt 阅读全文
posted @ 2023-11-30 15:44 CrossAutomaton 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 191. 位1的个数 2021年3月22日每日一题 0ms代码,o(*≧▽≦)ツ笑 \(-n\&n\),其作用是返回\(n\)二进制最低位的\(1\)所对应的\(2\)的幂 学会这个可以去学一下树状数组了 原理是: ​ 原码在最低位\(1\)之前都是\(0\),取反码则是最低位\(0\)之前都是\( 阅读全文
posted @ 2023-11-30 15:43 CrossAutomaton 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 73. 矩阵置零 2021年3月21日每日一题 O(1)额外空间写法 简单理解一下 ​ 首先我们对于矩阵内所有\(\sum_{i=0}^{m}{\sum_{j=1}^{n}}0\),记录到第0行和第0列上 ​ 那么,我们只需要对于\(\sum_{i=1}^{m}{\sum_{j=1}^{n}}\), 阅读全文
posted @ 2023-11-30 15:39 CrossAutomaton 阅读(3) 评论(0) 推荐(0) 编辑