E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
从头做leetcode
从头做leetcode
之leetcode 87 扰乱字符串
87.扰乱字符串给定一个字符串s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。下图是字符串s1=“great”的一种可能的表示形式。great/great/\/great/at在扰乱这个字符串的过程中,我们可以挑选任何一个非叶节点,然后交换它的两个子节点。例如,如果我们挑选非叶节点“gr”,交换它的两个子节点,将会产生扰乱字符串“rgeat”。rgeat/rgeat/\/rg
cncxycpp
·
2023-10-14 22:40
从头做leetcode
leetcode
字符串
从头做leetcode
之leetcode 74 搜索二维矩阵
74.搜索二维矩阵编写一个高效的算法来判断mxn矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。对行和列分别执行二分查找classSolution{public:boolsearchMatrix(vector>&matrix,inttarget){if(matrix.size()==0||matrix[0].size()==
cncxycpp
·
2023-10-14 02:09
leetcode
算法
c++
从头做leetcode
之leetcode 104 二叉树的最大深度
104.二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。递归/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode(intx):val(x),left(NULL),ri
cncxycpp
·
2020-08-24 08:18
从头做leetcode
数据结构
二叉树
leetcode
算法
从头做leetcode
之leetcode 108 将有序数组转换为二叉搜索树
108.将有序数组转换为二叉搜索树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode(intx):val(x
cncxycpp
·
2020-08-24 08:18
从头做leetcode
从头做leetcode
之leetcode 102 二叉树的层序遍历
102.二叉树的层序遍历给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。队列,把每层的结点放入后进入循环输出。/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode(intx):val(x),left(NULL),righ
cncxycpp
·
2020-08-24 08:17
从头做leetcode
leetcode
二叉树
算法
队列
从头做leetcode
之leetcode 39 组合总和
39.组合总和给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。用DFS的思想回溯用一个一维数组保存当前结果,只不过是下一次的起始位置是原地,而不是后一个。classSolution{public
cncxycpp
·
2020-08-24 08:17
从头做leetcode
从头做leetcode
之leetcode 10 正则表达式匹配
10.正则表达式匹配给你一个字符串s和一个字符规律p,请你来实现一个支持‘.’和‘*’的正则表达式匹配。‘.’匹配任意单个字符‘*’匹配零个或多个前面的那一个元素所谓匹配,是要涵盖整个字符串s的,而不是部分字符串。对于两个字符串的匹配,首先想到的是从第一个字符开始一个一个匹配。但是正则表达式中要处理’.‘和’*'的问题。关于’.’:由于’.‘是可以匹配任意单个字符,所以这个问题中的’.‘并不是关键
cncxycpp
·
2020-08-24 08:17
从头做leetcode
从头做leetcode
之leetcode 101 对称二叉树
101.对称二叉树给定一个二叉树,检查它是否是镜像对称的。用递归的方法/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode(intx):val(x),left(NULL),right(NULL){}*};*/classSolution{public:bool
cncxycpp
·
2020-08-24 08:17
从头做leetcode
leetcode
二叉树
从头做leetcode
之leetcode 61 旋转链表
61.旋转链表给定一个链表,旋转链表,将链表每个节点向右移动k个位置,其中k是非负数。简单的链表操作,先遍历一遍算出长度,第一个指针停在原链表尾部第二次遍历使得两个指针位于新链表的尾部和头部最后旋转/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode(intx):val(x),next
cncxycpp
·
2020-08-24 08:17
从头做leetcode
从头做leetcode
之leetcode 103 二叉树的锯齿形层次遍历
103.二叉树的锯齿形层次遍历给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。用一个变量记录层数,奇数尾插,偶数头插。/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode(intx):v
cncxycpp
·
2020-08-24 08:17
从头做leetcode
leetcode
二叉树
算法
从头做leetcode
之leetcode 35 搜索插入位置
35.搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。二分法还是用二分法搜索,如有就返回mid。如果没有就和退出循环时的mid比较,确定插入位置。classSolution{public:intsearchInsert(vector&nums,inttarget){if(nums.siz
cncxycpp
·
2020-08-24 06:03
从头做leetcode
从头做leetcode
之leetcode 49 字母异位词分组
49.字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。由于每个字母异位词排序后是相同的,所以把排序后的字符串作为key,原先的字符串作为value存入一个哈希表中。classSolution{public:vector>groupAnagrams(vector&strs){vector>res;unordered_map>m;for(inti=0
cncxycpp
·
2020-08-21 13:08
从头做leetcode
从头做leetcode
之leetcode 45 跳跃游戏II
45.跳跃游戏||给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。用贪心算法,因为题目中说一定可以到达最后一个位置只需考虑每个位置可以跳到的最远位置classSolution{public:intjump(vector&nums){if(nums.size()=nums.size()-1)ret
cncxycpp
·
2020-08-17 21:53
从头做leetcode
从头做leetcode
之leetcode 91 解码方法
91.解码方法一条包含字母A-Z的消息通过以下方式进行了编码:‘A’->1‘B’->2…‘Z’->26给定一个只包含数字的非空字符串,请计算解码方法的总数。动态规划classSolution{public:intnumDecodings(strings){if(s.size()==0||s=="0")return0;if(s.size()==1)return1;intres=0;vectordp=
cncxycpp
·
2020-08-09 20:58
从头做leetcode
从头做leetcode
之leetcode 33 搜索旋转排序数组
33.搜索旋转排序数组假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是O(logn)级别。二分法因为是O(logn)级别的时间复杂度,所以就想想可以不可以用二分法实现。这道题
cncxycpp
·
2020-08-07 13:30
从头做leetcode
从头做leetcode
之leetcode 76 最小覆盖子串
76.最小覆盖子串给你一个字符串S、一个字符串T,请在字符串S里面找出:包含T所有字符的最小子串。示例:输入:S=“ADOBECODEBANC”,T=“ABC”输出:“BANC”说明:如果S中不存这样的子串,则返回空字符串“”。如果S中存在这样的子串,我们保证它是唯一的答案。classSolution{public:stringminWindow(strings,stringt){if(t.siz
cncxycpp
·
2020-07-01 20:03
从头做leetcode
之leetcode 69 x的平方根
69.x的平方根实现intsqrt(intx)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。用二分查找的思想,由于是取整数位,不存在四舍五入,所以在down>up-1时退出循环classSolution{public:intmySqrt(intx){if(x=mid){down=mid;}elseif(x/mid
cncxycpp
·
2020-06-22 23:50
从头做leetcode
上一页
1
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他