
纸上得来终觉浅
文章平均质量分 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 · 355 阅读 · 0 评论 -
最长不重复子串
个写写作要点 1.主循环中的第一个if里,要加max的时时更新,要不然如果无法进入else,到最后跑完了,max还是0 2.std::vector iterator 的写法需要不借助IDE和百度写出来 3.algorithm 单词的写法,以及std::find 的用法。vector中用的是std::find而到map中或是unordered_map中直接引用find 4.std::vector中的erase用法,注意最后一个参数,在删除的时候是会被保留的,所以一定要+1 请从字符串中找出一个最长的不包含重复原创 2021-03-09 15:38:56 · 119 阅读 · 0 评论 -
二进制矩阵中的最短路径(力扣第1091题)
给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短 畅通路径 的长度。如果不存在这样的路径,返回 -1 。 二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即,(0, 0))到 右下角 单元格(即,(n - 1, n - 1))的路径,该路径同时满足下述要求: 路径途经的所有单元格都的值都是 0 。 路径中所有相邻的单元格应当在 8 个方向之一 上连通(即,相邻两单元之间彼此不同且共享一条边或者一个角)。 畅通路径的长度 是该路径途经的单元格总数。 示例 1: 输入:grid = [[0原创 2021-05-11 13:00:08 · 478 阅读 · 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 · 190 阅读 · 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 · 578 阅读 · 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 · 495 阅读 · 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中,所以要写一个单独的函数来接收res 4.中序遍历就要写原创 2021-03-12 18:51:20 · 143 阅读 · 1 评论