自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

原创 二叉搜索树结点最小距离

题目描述:给定一个二叉搜索树的根结点 root, 返回树中任意两节点的差的最小值。示例:输入: root = [4,2,6,1,3,null,null]输出: 1解释:注意,root是树结点对象(TreeNode object),而不是数组。给定的树 [4,2,6,1,3,null,null] 可表示为下图: 4 / \ 2 ...

2019-04-03 19:19:36 450

原创 DataWhale|Mysql 任务1

项目一:查找重复的电子邮箱(难度:简单)创建 email表,并插入如下三行数据±—±--------+| Id | Email |±—±--------+| 1 | a@b.com || 2 | c@d.com || 3 | a@b.com |±—±--------+编写一个 SQL 查询,查找 Person 表中所有重复的电子邮箱。根据以上输入,你的查询应返回以下结...

2019-03-31 15:05:36 265

原创 填充每个节点的下一个右侧节点指针

题目描述:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:struct Node { int val; Node *left; Node *right; Node *next;}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。初始状态下,所有 next ...

2019-03-30 14:37:19 224

原创 对称二叉树

题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3说明:如果你可以运用递归和迭代两种方法解决这个问...

2019-03-29 11:07:17 132

转载 回文链表

题目描述:请编写一个函数,检查链表是否为回文。给定一个链表ListNode* pHead,请返回一个bool,代表链表是否为回文。测试样例:{1,2,3,2,1}返回:true{1,2,3,2,3}返回:false思路一:先把链表值存到栈中 然后遍历链表与栈弹出的值比较。栈中的值是从尾到头的这样就实现了第一个与倒数第一个匹配比较如果不一样则返回false public bo...

2019-03-28 17:44:12 171

原创 奇偶链表

题目描述:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2->4->NULL示例 2:输入: 2->1->3->5->6->...

2019-03-28 17:12:46 149

原创 移除链表元素

题目描述:删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解题思路:只需遍历整个链表,维护一个当前结点的前指针,若要找到删除的元素,直接将前指针的next域指向当前待删除结点的next域即可。 public ListNode...

2019-03-28 16:32:12 88

原创 反转链表

题目描述:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?迭代法:思想:新建一个链表,然后将原链表元素依次用尾插法插入到新链表的尾部,依次类推。代码:public ListNode reve...

2019-03-28 15:58:56 72

转载 经典快速排序算法与随机快速排序算法

转自: https://blog.csdn.net/haelang/article/details/44496387快速排序用到了分治思想,同样的还有归并排序。乍看起来快速排序和归并排序非常相似,都是将问题变小,先排序子串,最后合并。不同的是快速排序在划分子问题的时候经过多一步处理,将划分的两组数据划分为一大一小,这样在最后合并的时候就不必像归并排序那样再进行比较。但也正因为如此,划分的不定性使...

2019-03-27 21:11:06 3818

原创 19. 删除链表的倒数第N个节点

题目描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解题思路:这是一道简单题。进阶要求使用一趟扫描实现,双指针是链表惯...

2019-03-26 16:15:14 97

原创 相交链表

题目描述:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3 输出:Reference of the node with value = 8 输入解释:相交节点的值为 8 (...

2019-03-26 15:20:43 3175

原创 剑指Offer-数值的整数次方

题目描述:给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。解题思路:首先拿到这道题,给人的感觉非常简单。很快就能写出代码,如下: public double Power(double base,int exponent) { double result = 1.0; for(int i = 1;i <= ex...

2019-03-26 11:46:37 113

原创 环形链表I 与 环形链表II(非常容易理解)

环形链表I题目描述:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos =...

2019-03-24 23:28:41 1755

转载 堆排序

作者: dreamcatcher-cx出处: http://www.cnblogs.com/chengxiao/记录一下实现算法: static void heapSort(int[] arr) { //构建大顶堆 for(int i = arr.length / 2 - 1;i >= 0;i--) { adjustHeap(arr,i,arr.length)...

2019-03-24 18:32:24 88

原创 21. 合并两个有序链表

题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题思路:链表简单题,可以选择其中一个链表不动,另一个链表往里面插队,也可以新建一个链表,然后将原始两个链表分别比大小,依次插入到新的链表。我这里实...

2019-03-23 15:09:23 71

原创 707. 设计链表

题目描述:设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。在链表类中实现这些功能:get(index):获取链表中第 index 个节点的值。如果索引无效,则...

2019-03-22 22:34:29 136

原创 剑指Offer-斐波那契数列

题目描述:大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39效率很低的解法:很多C语言教科书在讲递归函数的时候,都会用Fibonacci作为例子,很多人看到这道题会心生窃喜,因为递归方法很简单: public int Fibonacci(int n) { if (n <= 0) { return 0; ...

2019-03-20 11:03:54 99

转载 剑指Offer-旋转数组的最小数字

题目描述:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE: 给出的所有元素都大于0,若数组大小为0,请返回0。解题思路:这道题最直观的解法并不难,从头到尾遍历数组一次,我们就能找出最小的元素。这种思路的时间复杂度显然...

2019-03-20 10:22:41 164

原创 实现单例模式

1.什么是单例模式?即在应用程序中,最多只能有一个实例,且自行实例化向整个应用程序提供该实例。2.有什么作用?1.提升运行效率2.实现数据共享,如application对象有如下两种单例模式:懒汉式和饿汉式。懒汉式:比较懒,只有对象被调用时才去创建。由于添加了同步锁,所以效率较低。class lazySingleton{ //类加载时进行实例化 private static l...

2019-03-19 16:59:06 108

原创 剑指Offer-重建二叉树

题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路:假如已知先序序列为ABDECF,中序序列为DBEAFC,如何求解后序序列?由于先序遍历树的规则为根左右,因此可以得出先序序列的第一个元素一...

2019-03-19 15:56:02 97

转载 maven学习

直接转载记录:https://www.cnblogs.com/best/p/9676515.html#_label0

2019-03-18 22:39:07 76

原创 剑指Offer-从尾到头打印链表

题目描述:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。解题思路:链表的遍历肯定是从头至尾的。而题目要求我们返回从尾到头的链表值,则想到用栈来实现。当遍历链表时,顺序遍历,将每个结点的值依次压栈。待遍历完整个链表,再开始依次出栈,将出栈元素依次存入list中,即得到结果。AC代码: public ArrayList<Integer> printList...

2019-03-18 18:03:19 73

原创 剑指Offer-替换空格

题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。解题思路:1.首先遍历字符串,统计出空格数。2.然后对原字符串进行扩容,每个空格用%20来代替,则代替后,每个空格多出两个字符。则扩容大小为空格数 * 2。3.若从前向后遍历字符串,遇到空格后,每次都需要将该空格后的所有字...

2019-03-18 17:36:37 65

原创 SAX解析XML

由于SAX解析XML的方式优缺点已经在网上随处可见,此博客只记录一下用法。第一步:编写一个XML文件,名为people.xml,如下。&lt;peoples&gt; &lt;people id="1"&gt; &lt;name&gt;李四&lt;/name&gt; &lt;password&gt;123456&lt;/password&gt; &lt;/

2019-03-17 23:32:19 131

转载 为什么重写equals一定要重写hashcode?

大家都知道,equals和hashcode是java.lang.Object类的两个重要的方法,在实际应用中常常需要重写这两个方法,但至于为什么重写这两个方法很多人都搞不明白,以下是我的一些个人理解。这是Object类关于这两个方法的源码,可以看出,Object类默认的equals比较规则就是比较两个对象的内存地址。而hashcode是本地方法,java的内存是安全的,因此无法根据散列码得到对...

2019-03-13 18:37:23 167

转载 java获取请求路径信息

记录一下常用路径信息的获取://测试的请求url, get方法 //"http://localhost:8080/struts2/user/login.action?userid=1000" //获取请求方法 request.getMethod(); //返回"GET" //获取请求协议 request.getScheme(); /...

2019-03-13 11:37:06 4109

原创 225. 用队列实现栈

题目描述:使用队列实现栈的下列操作:push(x) -- 元素 x 入栈pop() -- 移除栈顶元素top() -- 获取栈顶元素empty() -- 返回栈是否为空注意:你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 li...

2019-03-12 11:35:38 141

原创 232. 用栈实现队列

题目描述:使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。pop() -- 从队列首部移除元素。peek() -- 返回队列首部的元素。empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2);queue.peek(); // 返回 1queu...

2019-03-11 18:49:48 92

原创 94. 二叉树的遍历(非递归方式)

题目描述:给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]**进阶:**进阶: 递归算法很简单,你可以通过迭代算法完成吗?解题思路:本道题就是二叉树的遍历,我想到了两种办法,就是常规的递归实现和显示栈实现。方法一:递归,不多说。 public List&amp;amp;lt;...

2019-03-11 11:05:54 141

原创 150. 逆波兰表达式求值

题目描述:根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例 1:输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9示...

2019-03-10 10:52:50 138

原创 739. 每日温度

题目描述:根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请输入 0 来代替。例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的...

2019-03-10 10:13:40 263

原创 155. 最小栈

题目描述:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。pop() -- 删除栈顶的元素。top() -- 获取栈顶元素。getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pu...

2019-03-08 13:13:42 110

原创 200. 岛屿的个数

题目描述:给定一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。示例 1:输入:11110110101100000000输出: 1示例 2:输入:11000110000010000011输出: 3解题思路:类似于深度优先搜索,使用递...

2019-03-07 11:51:34 78

转载 数据库中的内连接、自然连接、和外连接的区别

数据中的连接join分为内连接、自然连接、外连接,外连接又分为左外连接、右外连接、全外连接当然,这些分类都是在连接的基础上,是从两个表中记录的笛卡尔积中选取满足连接的记录。笛卡尔积简单的说就是一个表里的记录要分别和另外一个表的记录匹配为一条记录,即如果表A有3条记录,表B也有三条记录,经过笛卡尔运算之后就应该有3*3即9条记录。如下表:自然连接(natural join)自然连接是一种特...

2019-03-06 19:41:47 37067 7

原创 136. 只出现一次的数字

题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4解题思路:拿到题目,首先想到了用map集合来做,用数组每个元素的值作为key,出现次数作为value...

2019-03-06 10:08:37 74

原创 238. 除自身以外数组的乘积

题目描述:给定长度为 n 的整数数组 nums,其中 n &amp;gt; 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]**说明:**请不要使用除法,且在 O(n) 时间复杂度内完成此题。解题思路:拿到题目,输出除自身以外其余数的乘积,觉得题目很简单。直...

2019-03-04 10:09:27 156

原创 557. 反转字符串中的单词 III

题目描述:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例 1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc" 解题思路:先将字符串以空格分隔,将单词转换为字符串数组,然后分别将每个单词进行反转。反转后再将各个单词拼接起来,以空格连接。注意:在追加最后一...

2019-03-03 10:28:07 136

原创 344. 反转字符串

题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[&quot;h&quot;,&quot;e&quot;,&quot;l&quot;,&quot;l&quot;,&quot;o&q

2019-03-03 09:52:25 121

原创 43. 字符串相乘

题目描述:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = &quot;2&quot;, num2 = &quot;3&quot;输出: &quot;6&quot;示例 2:输入: num1 = &quot;123&quot;, num2 = &quot;456&quot;输出: &amp

2019-03-02 11:10:13 388

原创 11. 盛最多水的容器

题目描述:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。**说明:**你不能倾斜容器,且 n 的值至少为 2。``示例:输入: [1,8,6,2,5,4,8,3,7]输出: 49``解题...

2019-03-01 09:42:50 90

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除