自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 lintcode--402. 连续子数组求和

描述给定一个整数数组,请找出一个连续子数组,使得该子数组的和最大。输出答案时,请分别返回第一个数字和最后一个数字的下标。(如果两个相同的答案,请返回其中任意一个)样例给定 [-3, 1, 3, -3, 4], 返回[1,4].代码遍历数组,累积求和,难点在于起始位置和终止位置的更新操作。public class Solution { /* * @param...

2018-05-28 20:00:31 299 1

原创 lintcode--63. 搜索旋转排序数组 II

描述跟进“搜索旋转排序数组”,假如有重复元素又将如何?是否会影响运行时间复杂度?如何影响?为何会影响?写出一个函数判断给定的目标值是否出现在数组中。样例给出[3,4,4,5,7,0,1,2]和target=4,返回 true代码还是运用二分的思想,首先找到目标值在哪个区间上,然后再对该区间进行二分查找。public class Solution { ...

2018-05-27 11:48:50 291

原创 lintcode--511. 交换链表当中两个节点

描述给你一个链表以及两个权值v1和v2,交换链表中权值为v1和v2的这两个节点。保证链表中节点权值各不相同,如果没有找到对应节点,那么什么也不用做。你需要交换两个节点而不是改变节点的权值样例给出链表 1->2->3->4->null ,以及 v1 = 2 , v2 = 4返回结果 1->4->3->2->null。代码根据给...

2018-05-27 11:05:37 423

原创 lintcode--182. 删除数字

描述给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。找到删除 k 个数字之后的最小正整数。N <= 240, k <= N样例给出一个字符串代表的正整数 A 和一个整数 k, 其中 A = 178542, k = 4返回一个字符串 "12"代码思想是贪心,每次删除一个字符,保证...

2018-05-18 12:05:13 533

原创 lintcode--450. K组翻转链表

描述给你一个链表以及一个k,将这个链表从头指针开始每k个翻转一下。 链表元素个数不是k的倍数,最后剩余的不用翻转。样例给出链表 1->2->3->4->5k = 2, 返回 2->1->4->3->5k = 3, 返回 3->2->1->4->5代码整体思路是每隔k个节点,进行逆置,随后拼接。...

2018-05-11 16:02:39 199

原创 lintcode--650. Find Leaves of Binary Tree

描述给定一个二叉树,像这样收集树节点:收集并移除所有叶子,重复,直到树为空。样例Given binary tree: 1 / \ 2 3 / \ 4 5 Returns [[4, 5, 3], [2], [1]].代码这道题可以采用遍历的方式收集叶子节点,并删除。/** * Definition of TreeNode: *...

2018-05-10 11:40:54 219

原创 lintcode--661. 把二叉搜索树转化成更大的树

描述给定二叉搜索树(BST),将其转换为更大的树,使原始BST上每个节点的值都更改为在原始树中大于等于该节点值的节点值之和(包括该节点)。样例Given a binary search Tree `{5,2,13}`: 5 / \ 2 13Return the root of new tree ...

2018-05-09 20:59:29 224

原创 lintcode--107. 单词拆分 I

描述给出一个字符串s和一个词典,判断字符串s是否可以被空格切分成一个或多个出现在字典中的单词。样例给出s = "lintcode"dict = ["lint","code"]返回 true 因为"lintcode"可以被空格切分成"lint code"代码public class Solution { /* * @param s: A string...

2018-05-08 15:39:06 328

原创 lintcode--99. 重排链表

描述给定一个单链表L: L0→L1→…→Ln-1→Ln,重新排列后为:L0→Ln→L1→Ln-1→L2→Ln-2→…必须在不改变节点值的情况下进行原地操作。样例给出链表 1->2->3->4->null,重新排列后为1->4->2->3->null。挑战Can you do this in-place without al...

2018-05-07 17:39:17 171

原创 lintcode--116. 跳跃游戏

描述给出一个非负整数数组,你最初定位在数组的第一个位置。   数组中的每个元素代表你在那个位置可以跳跃的最大长度。    判断你是否能到达数组的最后一个位置。样例A = [2,3,1,1,4],返回 true.A = [3,2,1,0,4],返回 false.代码建立一个一维数组,下标i表示第i步最远可以到哪儿。public class Solution {...

2018-05-07 15:28:23 266

原创 lintcode--880. 字符串构造二叉树

描述您需要从包含括号和整数的字符串中构造一个二叉树。 整个的输入表示一个二叉树。它包含一个整数,或零,或两对括号。该整数表示根的值,而一对括号包含一个具有相同结构的子二叉树。 如果父节点存在,您总是首先开始构造它的左子节点。在输入字符串中只有'(',')','-'和'0' ~ '9'。空树表示为“”而不是“()”。样例给定 s = “4(2(3)(1))(6(5))”, 返回...

2018-05-07 14:15:20 743

原创 lintcode--170. 旋转链表

描述给定一个链表,旋转链表,使得每个节点向右移动k个位置,其中k是一个非负数样例给出链表1->2->3->4->5->null和k=2返回4->5->1->2->3->null代码整体思路是先遍历一遍链表,求出链表的长度size,随后size和k进行取余得到k,取余的目的是得到需要移动的最小距离。然后我们取倒数第k...

2018-05-06 15:12:35 199

原创 lintcode--448. Inorder Successor in BST

描述给一个二叉查找树(什么是二叉查找树),以及一个节点,求该节点的中序遍历后继,如果没有返回null 注意事项It's guaranteed p is one node in the given tree. (You can directly compare the memory address to find p)样例给出 tree = [2,1] node = 1:返回 ...

2018-05-03 23:13:49 238

原创 lintcode--90. k数和 II

描述Your title here…Given n unique integers, number k (1<=k<=n) and target. Find all possible k integers where their sum is target.样例给出[1,2,3,4],k=2, target=5,返回 [[1,4],[2,3]]代码使用递归,不断地...

2018-05-01 22:21:27 239

原创 lintcode--94. 二叉树中的最大路径和

描述给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)样例给出一棵二叉树: 1 / \ 2 3返回 6代码根据后序遍历,从下到上,max用来保存最大值,在maxPath函数中,递归返回左右子树的某个子树的最大值。/** * Definition of ...

2018-05-01 20:50:57 232

原创 lintcode--100. 删除排序数组中的重复数字

描述给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度。不要使用额外的数组空间,必须在原地没有额外空间的条件下完成。样例给出数组A =[1,1,2],你的函数应该返回长度2,此时A=[1,2]。代码将不重复的元素依次覆盖到原数组中。public class Solution { /* * @param nums: An ineger ar

2018-05-01 10:18:31 171

原创 lintcode--103. 带环链表 II

描述给定一个链表,如果链表中存在环,则返回到链表中环的起始节点,如果没有环,返回null。样例给出 -21->10->4->5, tail connects to node index 1,返回10代码/** * Definition for ListNode. * public class ListNode { * int val; * ...

2018-04-28 12:20:11 179

原创 lintcode--102. 带环链表

描述给定一个链表,判断它是否有环。样例给出 -21->10->4->5, tail connects to node index 1,返回 true挑战不要使用额外的空间代码设置两个slow和fast指针,每次循环时,fast指针前进2步,slow前进1步,然后判断两个指针是否会相遇。/** * Definition for ListNode...

2018-04-28 11:37:12 177

原创 lintcode--464. 整数排序 II

描述给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。样例给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]。代码快排public class Solution { /** * @param A: an integer array * @return: ...

2018-04-22 14:39:14 191

原创 Spring面试--常考知识点

Spring框架IOC和AOP的实现原理https://www.cnblogs.com/cyhzzu/p/6644981.html

2018-03-29 14:28:16 321

原创 Java面试考点

详解synchronized与Lock的区别与使用https://blog.csdn.net/u012403290/article/details/64910926?locationNum=11&fps=1synchronized和lock的实现原理https://blog.csdn.net/tingfeng96/article/details/52219649...

2018-03-28 22:59:55 224

原创 Java面试--TCP和UDP

区别1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付 3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的 UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送...

2018-03-28 18:31:46 414

原创 校招真题--网格走法数目

题目描述有一个X*Y的网格,小团要在此网格上从左上角到右下角,只能走格点且只能向右或向下走。请设计一个算法,计算小团有多少种走法。给定两个正整数int x,int y,请返回小团的走法数目。输入描述:输入包括一行,逗号隔开的两个正整数x和y,取值范围[1,10]。输出描述:输出包括一行,为走法的数目。代码经典的动态规划题,创建一个二维数组dp[i][...

2018-03-25 18:32:54 408

原创 剑指offer--和为S的连续正数序列

描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!代码设置两个指针small和big,表示...

2018-03-17 16:10:08 123

原创 计算机网络笔试常考知识点

dns服务中资源记录的类型DNS 包括七大资源记录   A记录   CNAME记录   NS记录   SOA记录   MX记录   PTR记录   SRV记录计算机网络通信安全的目标(1) 防止析出报文内容;   (2) 防止通信量分析;   (3) 检测更改报文流;   (4) 检测拒绝报文服务;   (5) 检测伪造初始化。判断IP地址是否在同一个...

2018-03-17 16:05:03 407

原创 剑指offer--平衡二叉树

描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。代码根据平衡二叉树的定义,我们可以根据求二叉树深度的算法,后序遍历求出左右子树的深度差,并做出判断public class Solution { private boolean isBalanced=true; public boolean IsBalanced_Solution(TreeNode root) { ...

2018-03-16 20:11:04 119

原创 剑指offer--两个链表的第一个公共结点

描述输入两个链表,找出它们的第一个公共结点。代码思路:分别计算两个链表的长度,然后可以区分哪个链表更长,并且求出俩链表的长度差delta。然后先遍历长链表,让长链表先走delta步,接下来,两个链表同时遍历,直到两个引用指向同一个对象,返回该节点。/*public class ListNode { int val; ListNode next = null; ...

2018-03-15 17:47:26 113

原创 剑指offer--数组中的逆序对

描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007输入描述题目保证输入的数组中没有的相同的数字 数据范围: 对于%50的数据,size<=10^4 对于%75的数据,size<=10^5 ...

2018-03-15 14:59:53 91

原创 剑指offer--丑数

描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。代码import java.util.*;public class Solution { Map<Integer,Boolean> ug=new HashMap<>();...

2018-03-14 15:34:44 136

原创 剑指offer--整数中1出现的次数(从1到n整数中1出现的次数)

描述求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。代码这道题在不用暴力的情况下,通过观察数字的规律,可以总结三种情况。设N = abcde ,其中abcde分别为十进

2018-03-13 16:25:24 132

原创 剑指offer--二叉搜索树与双向链表

描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。代码经过二叉排序树的中序遍历。/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode...

2018-03-11 16:19:02 128

原创 剑指offer--复杂链表的复制

描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)代码/*public class RandomListNode { int label; RandomListNode next = null; ...

2018-03-11 12:20:41 97

原创 剑指offer--二叉树中和为某一值的路径

描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。代码递归寻路,根据节点的左右子树,如果该节点是叶子节点,并且当前的路径和等于target,那么就把当前的路径添加到结果list中。import java.util.ArrayList;/**public class TreeNode {...

2018-03-11 11:07:14 150

原创 剑指offer--二叉搜索树的后序遍历序列

描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。代码根据后序遍历的特点,可以确定数组的最后一个元素是头结点,随后,根据二叉搜索树,左子树的节点小于头结点,右子树的节点大于头结点,可以遍历数组,确定左右子树的头,这个过程,一旦有某个元素不符合二叉搜索树的特点,那么直接返回false。publ...

2018-03-10 22:41:28 112

原创 lintcode--109. 数字三角形

描述给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。注意事项如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字三角形的总行数。样例[ [2], [3,4], [6,5,7], [4,1,8,3]]代码本题比较快的一种方式是,从下到上,取得最终的最小路径值。public clas...

2018-03-10 19:44:33 170

原创 lintcode--76. 最长上升子序列

描述最长上升子序列的定义:最长上升子序列问题是在一个无序的给定序列中找到一个尽可能长的由低到高排列的子序列,这种子序列不一定是连续的或者唯一的。 https://en.wikipedia.org/wiki/Longest_increasing_subsequence样例给出 [5,4,1,2,3],LIS 是 [1,2,3],返回 3给出 [4,2,4,5,3,7],LIS 是...

2018-03-10 15:39:18 249

原创 lintcode---43. 最大子数组 III

描述给定一个整数数组和一个整数 k,找出 k 个不重叠子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。注意事项子数组最少包含一个数样例给出数组 [-1,4,-2,3,-2,3] 以及 k = 2,返回 8代码分析:与Best Time to Buy and Sell Stock IV类似,两个数组分别记录包含当前值的本地最优解和全局...

2018-03-10 12:32:25 687

原创 剑指offer--栈的压入、弹出序列

描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)代码import java.util.ArrayList;import java.u...

2018-03-09 19:43:13 117

原创 剑指offer--包含min函数的栈

描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。代码定义两个栈s1,s2。s1是自然栈,也就是正常的压栈和出栈,而s2是保存当前最小值的栈,当有一个元素压栈时,首先比较s2的栈顶元素和该元素的大小,如果该元素小于s2的栈顶元素,则向s2压栈(更新一下最小值)。当弹栈的时候,也要比较s1和s2的栈顶元素,如果相等,需要将s1和s2的栈顶元素都弹出。impor...

2018-03-09 11:51:13 152

原创 剑指offer--顺时针打印矩阵

描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.代码import java.util.ArrayList;public class Solution { publ...

2018-03-09 11:31:47 133

空空如也

空空如也

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

TA关注的人

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