
leetcode
leetcode刷题
Obrigado.
不断进步,懂得分享
展开
-
STL中next_permutation的使用
STL中next_permutation的使用原创 2022-09-15 16:51:55 · 432 阅读 · 0 评论 -
秒杀:只出现一次的数字系列
给定一个数组,数组中只有一个元素出现1次,其余元素都出现k次,请找出出现1次的元素;原创 2022-08-14 14:54:00 · 193 阅读 · 0 评论 -
扩展题:删除有序数组中重复元素
删除有序数组中重复项的k次扩展原创 2022-08-01 11:18:44 · 545 阅读 · 0 评论 -
剑指 Offer 48. 最长不含重复字符的子字符串
题目描述思路lastRepeatIndex:表示上一次重复字符的下标map<char, int> hash: 比如hash[‘a’] = 2,一方面该数据结构可以判断,当前遍历字符之前有没有出现过;另一方面,可以获取如果字符出现过,出现的位置在哪。定义f数组,f[i] = k 表示str[0-i]序列的最长的不包含重复字符的子字符串的长度为k动规转移方程: | 1, i == 0 | f[i-1] + 1; i >= 1当前字符没有出现过原创 2022-03-18 11:10:10 · 590 阅读 · 0 评论 -
leetcode: 面试题 04.10. 检查子树
题目描述思路因为如果t2时t1的子树,那么t1中必存在至少一个节点的值与t2根节点的值相同;再者,如果两个树相同,则三个遍历序列也必然相同;根据此思路,写出代码逻辑如下:先先序(中序,后序也可)遍历t1,过程中判断当前遍历到节点的值是否与t2树根节点的值相同如果相同,进行子树是否相同判断;否则继续遍历子树是否相同的判断逻辑是:同时对两树进行先序遍历(中序,后序亦可),当当前遍历到的节点有一方为空,而另一方不为空,则两个树不同;当两个都为空时,表示是同树的;最后判断节点值,递归判断下去即可!原创 2022-03-17 19:58:54 · 375 阅读 · 0 评论 -
leetcode865.具有所有最深节点的最小子树
题目链接:https://leetcode-cn.com/problems/smallest-subtree-with-all-the-deepest-nodes/根据题意及几个示例分析:分几种情况:如果最深节点只有一个那么该节点就是所求的最小子树,独点成树。如果有多个节点,目的就是求这多个节点...原创 2021-04-21 16:25:32 · 201 阅读 · 0 评论 -
从有序顺序表中删除值重复的元素,是表中元素均不相同
/* 参数Data数组为要处理的数据 *length存储数组长度 返回值失败返回0,成功返回1*/int Delete_Same(int Data[], int* length) { if (*length == 0) return 0; int i,j; for (i = 0, j = 1; j < *length; j++) if (Data[i] != Dat...原创 2021-04-07 21:41:40 · 188 阅读 · 0 评论 -
最大子序列和问题
问题描述:给定一个A1,A2,…,AN(可能有负数),求其中连续的的子序列的和的最大值为多少?例:-2,11,-4,13,-5,-2的最大子序列和为20,从11到13。算法很多,目前遇到的最好的一个算法,复杂度为O(N)。int MaxSubsequenceSum(vector<int> A) { int CurSum, MaxSum; CurSum = MaxSum = 0; for (const int eve : A) { CurSum += eve; if (CurS原创 2021-04-07 21:31:59 · 297 阅读 · 0 评论 -
翻转二叉树
//此种方式先翻转叶节点,自底向上 TreeNode* invertTree(TreeNode* root) { if(!root) return root; TreeNode* left = invertTree(root->left); TreeNode* right = invertTree(root->right); root->left = right; root-&.原创 2020-09-16 10:29:45 · 275 阅读 · 0 评论 -
剑指 Offer 32 - I. 从上到下打印二叉树
做该题的思想很简单,就是进行层次遍历,但是需要注意的是它的信息量有点大,我们直观地会认为使用队列进行,这个题要用循环队列来减少内存的使用,知道这些做起来就简单了,代码如下:#include<vector>using vec_int = vector<int>;#define NUM 200class Solution {public: vector<int> levelOrder(TreeNode* root) { /.原创 2020-09-14 16:33:01 · 139 阅读 · 0 评论 -
leetcode 151 翻转字符串里的单词c++
给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: “the sky is blue”输出: “blue is sky the”示例 2:输入: " hello world! "输出: “world! hello”解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: “a good example”输出: “exam...原创 2020-04-10 13:10:45 · 405 阅读 · 0 评论