自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 44. 最小子数组

给定一个整数数组,找到一个具有最小和的子数组。返回其最小和。样例给出数组[1, -1, -2, 1],返回 -3public class Solution { /* * @param nums: a list of integers * @return: A integer indicate the sum of minimum subarray */ ...

2018-03-06 21:18:16 155

原创 42. 最大子数组 II

给定一个整数数组,找出两个 不重叠 子数组使得它们的和最大。每个子数组的数字在数组中的位置应该是连续的。返回最大的和。样例给出数组 [1, 3, -1, 2, -1, 2]这两个子数组分别为 [1, 3] 和 [2, -1, 2] 或者 [1, 3, -1, 2] 和 [2],它们的最大和都是 7public class Solution { /* * @param nums: ...

2018-03-06 21:17:43 182

原创 41. 最大子数组

给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。样例给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6public class Solution { /** * @param nums: A list of integers * @return: A integer indicate the sum ...

2018-03-06 21:16:51 191

原创 40. 用栈实现队列

正如标题所述,你需要使用两个栈来实现队列的一些操作。队列应支持push(element),pop() 和 top(),其中pop是弹出队列中的第一个(最前面的)元素。pop和top方法都应该返回第一个元素的值。样例比如push(1), pop(), push(2), push(3), top(), pop(),你应该返回1,2和2public class MyQueue { St...

2018-03-06 21:16:16 167

原创 39. 恢复旋转排序数组

给定一个旋转排序数组,在原地恢复其排序。说明什么是旋转数组?比如,原始数组为[1,2,3,4], 则其旋转数组可以是[1,2,3,4], [2,3,4,1], [3,4,1,2], [4,1,2,3]样例[4, 5, 1, 2, 3] -> [1, 2, 3, 4, 5]public class Solution { /* * @param nums: An integer...

2018-03-06 21:15:41 159

原创 38. 搜索二维矩阵 II

写出一个高效的算法来搜索m×n矩阵中的值,返回这个值出现的次数。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每一列的整数从上到下是排序的。在每一行或每一列中没有重复的整数。样例考虑下列矩阵:[    [1, 3, 5, 7],    [2, 4, 7, 8],    [3, 5, 9, 10]]给出target = 3,返回 2public class Solution { /*...

2018-03-06 21:14:48 835

原创 37. 反转一个3位整数

反转一个只有3位数的整数。样例123 反转之后是 321。900 反转之后是 9。public class Solution { /** * @param number: A 3-digit number. * @return: Reversed number. */ public int reverseInteger(int number) { ...

2018-03-06 21:14:14 1064

原创 36. 翻转链表 II

翻转链表中第m个节点到第n个节点的部分样例给出链表1->2->3->4->5->null, m = 2 和n = 4,返回1->4->3->2->5->null/** * Definition for ListNode * public class ListNode { * int val; * ListNode ...

2018-03-06 21:13:35 190

原创 35. 翻转链表

翻转一个链表样例给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null/** * Definition for ListNode * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * ...

2018-03-06 21:13:01 127

原创 32. 最小子串覆盖

给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的子串。说明在答案的子串中的字母在目标字符串中是否需要具有相同的顺序?——不需要。样例给出source = "ADOBECODEBANC",target = "ABC" 满足要求的解  "BANC"public class Solution { /** * @param sou...

2018-03-06 21:12:28 2060

原创 31. 数组划分

给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:所有小于k的元素移到左边所有大于等于k的元素移到右边返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。样例给出数组 nums = [3,2,2,1] 和 k = 2,返回 1.public class Solution { /** * @param nums...

2018-03-06 21:11:42 236

原创 30. 插入区间

给出一个无重叠的按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。样例插入区间[2, 5] 到 [[1,2], [5,9]],我们得到 [[1,9]]。插入区间[3, 4] 到 [[1,2], [5,9]],我们得到 [[1,2], [3,4], [5,9]]。/** * Definition of Interval:...

2018-03-06 21:11:06 248

原创 29. 交叉字符串

给出三个字符串:s1、s2、s3,判断s3是否由s1和s2交叉构成。样例比如 s1 = "aabcc" s2 = "dbbca"    - 当 s3 = "aadbbcbcac",返回  true.    - 当 s3 = "aadbbbaccc", 返回 false.public class Solution { /** * @param s1: A string *...

2018-03-06 21:10:17 184

原创 28. 搜索二维矩阵

写出一个高效的算法来搜索 m × n矩阵中的值。这个矩阵具有以下特性:每行中的整数从左到右是排序的。每行的第一个数大于上一行的最后一个整数。样例考虑下列矩阵:[ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50]]给出 target = 3,返回 truepublic class Solution { /* * @pa...

2018-03-06 21:09:44 167

原创 22. 平面列表

给定一个列表,该列表中的每个要素要么是个列表,要么是整数。将其变成一个只包含整数的简单列表。样例给定 [1,2,[1,2]],返回 [1,2,1,2]。给定 [4,[3,[2,[1]]]],返回 [4,3,2,1]。/** * // This is the interface that allows for creating nested lists. * // You should not ...

2018-03-06 21:08:58 169

原创 20. 骰子求和

扔 n 个骰子,向上面的数字之和为 S。给定 Given n,请列出所有可能的 S 值及其相应的概率。样例给定 n = 1,返回 [ [1, 0.17], [2, 0.17], [3, 0.17], [4, 0.17], [5, 0.17], [6, 0.17]]。public class Solution { /** * @param n an integer * @...

2018-03-06 21:08:24 154

原创 18. 带重复元素的子集

给定一个可能具有重复数字的列表,返回其所有可能的子集样例如果 S = [1,2,2],一个可能的答案为:[ [2], [1], [1,2,2], [2,2], [1,2], []]public class Solution { /* * @param nums: A set of numbers. * @return: A list of li...

2018-03-06 21:07:49 231

原创 17. 子集

给定一个含不同整数的集合,返回其所有的子集样例如果 S = [1,2,3],有如下的解:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]public class Solution { /* * @param nums: A set of numbers * @return: ...

2018-03-06 21:07:17 229

原创 16. 带重复元素的排列

给出一个具有重复数字的列表,找出列表所有不同的排列。样例给出列表 [1,2,2],不同的排列有:[ [1,2,2], [2,1,2], [2,2,1]]public class Solution { /* * @param : A list of integers * @return: A list of unique permutations ...

2018-03-06 21:06:44 160

原创 15. 全排列

给定一个数字列表,返回其所有可能的排列。样例给出一个列表[1,2,3],其全排列为:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]public class Solution { /* * @param nums: A list of integers. * @return: A l...

2018-03-06 21:06:09 429

原创 14. 二分查找

给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1。样例在数组 [1, 2, 3, 3, 4, 5, 10] 中二分查找3,返回2。public class Solution { /** * @param nums: The integer array. ...

2018-03-06 21:05:36 103

原创 13. 字符串查找

对于一个给定的 source 字符串和一个 target 字符串,你应该在 source 字符串中找出 target 字符串出现的第一个位置(从0开始)。如果不存在,则返回 -1。说明在面试中我是否需要实现KMP算法?不需要,当这种问题出现在面试中时,面试官很可能只是想要测试一下你的基础应用能力。当然你需要先跟面试官确认清楚要怎么实现这个题。样例如果 source = "source" 和 tar...

2018-03-06 21:05:02 160

原创 12. 带最小值操作的栈

实现一个带有取最小值min方法的栈,min方法将返回当前栈中的最小值。你实现的栈将支持push,pop 和 min 操作,所有操作要求都在O(1)时间内完成。样例如下操作:push(1),pop(),push(2),push(3),min(), push(1),min() 返回 1,2,1public class MinStack { Stack<Integer> main...

2018-03-06 21:04:32 245

原创 11. 二叉查找树中搜索区间

给定两个值 k1 和 k2(k1 < k2)和一个二叉查找树的根节点。找到树中所有值在 k1 到 k2 范围内的节点。即打印所有x (k1 <= x <= k2) 其中 x 是二叉查找树的中的节点值。返回所有升序的节点值。样例如果有 k1 = 10 和 k2 = 22, 你的程序应该返回 [12, 20, 22]. 20 / \ 8 22 / \4 ...

2018-03-06 21:03:55 318

原创 9. Fizz Buzz 问题

给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz.如果这个数被5整除,打印buzz.如果这个数能同时被3和5整除,打印fizz buzz.样例比如 n = 15, 返回一个字符串数组:[ "1", "2", "fizz", "4", "buzz", "fizz", "7", "8", &quot

2018-03-06 21:03:17 333

原创 8. 旋转字符串

给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)样例对于字符串 "abcdefg".offset=0 => "abcdefg"offset=1 => "gabcdef"offset=2 => "fgabcde"offset=3 => "efgabcd"public class Solution { /** * @p

2018-03-06 21:02:32 104

原创 7. 二叉树的序列化和反序列化

设计一个算法,并编写代码来序列化和反序列化二叉树。将树写入一个文件被称为“序列化”,读取文件后重建同样的二叉树被称为“反序列化”。如何反序列化或序列化二叉树是没有限制的,你只需要确保可以将二叉树序列化为一个字符串,并且可以将字符串反序列化为原来的树结构。样例给出一个测试数据样例, 二叉树{3,9,20,#,#,15,7},表示如下的树结构: 3 / \9 20 / \ 15 7...

2018-03-06 21:01:43 134

原创 6. 合并排序数组 II

合并两个排序的整数数组A和B变成一个新的数组。public class Solution { /** * @param A: sorted integer array A * @param B: sorted integer array B * @return: A new sorted integer array */ public int...

2018-03-06 21:00:58 263

原创 5. 第k大元素

在数组中找到第k大的元素class Solution { /* * @param k : description of k * @param nums : array of nums * @return: description of return */ public int kthLargestElement(int k, int[] nu...

2018-03-06 21:00:19 160

原创 4. 丑数 II

设计一个算法,找出只含素因子2,3,5 的第 n 小的数。符合条件的数如:1, 2, 3, 4, 5, 6, 8, 9, 10, 12...public class Solution { /** * @param n: An integer * @return: the nth prime number as description. */ publi...

2018-03-06 20:57:16 262

原创 3. 统计数字

计算数字k在0到n中的出现的次数,k可能是0~9的一个值public class Solution { /* * @param : An integer * @param : An integer * @return: An integer denote the count of digit k in 1..n */ public int d...

2018-03-06 20:51:16 133

原创 2. 尾部的零

设计一个算法,计算出n阶乘中尾部零的个数public class Solution { /* * @param n: An integer * @return: An integer, denote the number of trailing zeros in n! */ public long trailingZeros(long n) { ...

2018-03-06 20:50:37 83

原创 1. A + B 问题

给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。public class Solution { /** * @param a: An integer * @param b: An integer * @return: The sum of a and b */ public int aplusb(int a, int b) ...

2018-03-06 20:49:23 99

原创 吸血鬼数字求解

java编程思想第四章练习10吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字是不允许的,例如,下列数字都是吸血鬼数字:1260=21*601827=21*872187=27*81下面代码结合了书本给出的方法和网上的一种比较方法,比较方便,求四位吸

2017-06-29 09:52:09 325

原创 寻找一个数组中的主元素

主元素就是出现次数大于数组总书目的一半。时间复杂度要求O(N)思路是扫描一遍数组,利用主元素出现次数大于一半,即用出现的次数减去未出现的次数,最后还是应该是大于0,一切小于0的都抛弃。最后得到可疑的一个主元素。再进行一遍遍历,确定可疑主元素的出现次数,大于一半就是主元素。public class MainElement{ public static vo

2017-05-25 11:25:02 2025

原创 求a[j]-a[i]的最大值,其中j>=i

题目出自数据结构与算法分析2.28常规思路是用两个for循环嵌套,但是时间复杂度会是O(N²)。然后书中推荐的方法是O(N),先给出思路和代码:

2017-05-24 10:33:08 1137

空空如也

空空如也

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

TA关注的人

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