leetcode
slamdunkofkd
这个作者很懒,什么都没留下…
展开
-
[面试][leetcode][非递归]c++实现二叉树的遍历(层序遍历,前序遍历,中序遍历,后序遍历)
首先是二叉树的常规定义。 struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode() : val(0), left(nullptr), right(nullptr) {} TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} TreeNode(int x, TreeNode *left, T原创 2021-07-20 20:08:07 · 273 阅读 · 4 评论 -
[面试][leetcode][c++实现][快排][归并排序][堆排序]排序算法总结
快速排序算法流程:每次随机指定一个数,一次循环找到这一个数的位置,然后递归接着找。int partition(vector<int> &nums,int left,int right){ int value = nums[left]; while(left<right){ while(left<right && nums[right]>=value) right--; while (left<ri原创 2021-07-18 17:35:40 · 122 阅读 · 1 评论 -
【Leetcode 300最长子序列】最优解的总结
题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4 解释: 最长的上升子序列是[2,3,7,101],它的长度是 4以上来自leetcode链接:https://leetcode-cn.com/problems/longest-increasing-subsequence/这题的难点在于在O(nl...原创 2020-05-01 16:56:14 · 240 阅读 · 0 评论 -
【leetcode 剑指offer No.56】 数组中数字出现的次数的解题思路和易错点
记录一下此题的操作思路,由于题目要求时间复杂度为O(n),空间复杂度为O(1),所以肯定是不能使用借助其他数据结构或者双指针遍历的方法了。这里使用的是位运算符。主要是异或运算符,首先贴出异或运算符的几点重要性质。1.如果我们对 0 和二进制位做 XOR 运算,得到的仍然是这个二进制位。a⊕0=a2.如果我们对相同的二进制位做 XOR 运算,返回的结果是 0。a⊕a=03.X...原创 2020-04-20 15:31:36 · 107 阅读 · 0 评论 -
初始化二维vector
在刷leetcode 时候,遇到一个问题,平常在使用vector时,往里面加元素都是直接push_back,vector也会动态的调整自己的内存。但是如果访问一个二维vector时,如果要访问到行号,就需要自己提前给vector通知resize的大小。再访问二维数组前,使用vector.resize()来指定要使用的行号。这样就可以访问行号了。/** * Definition for a ...原创 2020-03-24 21:44:13 · 238 阅读 · 0 评论