![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
纸上得来终觉浅
文章平均质量分 53
xianxjm
这个作者很懒,什么都没留下…
展开
-
拼接最大数参考答案
这里写自定义目录标题拼接最大数参考答案拼接最大数给定长度分别为 m 和 n 的两个数组,其元素由 0-9 构成,表示两个自然数各位上的数字。现在从这两个数组中选出 k (k <= m + n) 个数字拼接成一个新的数,要求从同一个数组中取出的数字保持其在原数组中的相对顺序。求满足该条件的最大数。结果返回一个表示该最大数的长度为 k 的数组。说明: 请尽可能地优化你算法的时间和空间复杂度。示例 1:输入:nums1 = [3, 4, 6, 5]nums2 = [9, 1, 2, 5, 8原创 2021-01-27 23:36:27 · 307 阅读 · 0 评论 -
最长不重复子串
个写写作要点1.主循环中的第一个if里,要加max的时时更新,要不然如果无法进入else,到最后跑完了,max还是02.std::vector iterator 的写法需要不借助IDE和百度写出来3.algorithm 单词的写法,以及std::find 的用法。vector中用的是std::find而到map中或是unordered_map中直接引用find4.std::vector中的erase用法,注意最后一个参数,在删除的时候是会被保留的,所以一定要+1请从字符串中找出一个最长的不包含重复原创 2021-03-09 15:38:56 · 80 阅读 · 0 评论 -
二进制矩阵中的最短路径(力扣第1091题)
给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即,(0, 0))到 右下角 单元格(即,(n - 1, n - 1))的路径,该路径同时满足下述要求:路径途经的所有单元格都的值都是 0 。路径中所有相邻的单元格应当在 8 个方向之一 上连通(即,相邻两单元之间彼此不同且共享一条边或者一个角)。畅通路径的长度 是该路径途经的单元格总数。示例 1:输入:grid = [[0原创 2021-05-11 13:00:08 · 416 阅读 · 0 评论 -
判断二叉搜索树
bool isBSTUtil(TreeNode *root, int min, int max){ if(root == NULL) return true; if(root->data < min || root->data > max) return false; return isBSTUtil(root->left, min, root->data - 1) && isBS原创 2021-05-06 09:48:14 · 158 阅读 · 0 评论 -
快速排序及其优化
void Quick_Sort(int *arr, int begin, int end){ if(begin > end) return; int tmp = arr[begin]; int i = begin; int j = end; while(i != j){ while(arr[j] >= tmp && j > i) j--; while(arr[i]原创 2021-05-06 09:45:38 · 498 阅读 · 0 评论 -
动态归化题总结
一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。class Solution {public: int numWays(int n) { if(n==0) return 1; if(n==1) return 1; if(n==2) return 2; int* dp = new int [n+1原创 2021-03-14 23:20:43 · 453 阅读 · 1 评论 -
二叉树的遍历
中序递归遍历写法的注意点1.一定要判断root==nullptr,要不然leetcode上会报Line x: member access within null pointer of type ‘struct TreeNode’原因:在测试过程中,第x行访问的指针为NULL,通常情况下表明程序未对NULL情况作出判断。例如:2.递归本身便是循环,所以不能加while(root)3.leetcode上的原题是要将遍历结果写入到一个vector中,所以要写一个单独的函数来接收res4.中序遍历就要写原创 2021-03-12 18:51:20 · 114 阅读 · 1 评论