自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (5)
  • 收藏
  • 关注

原创 最小栈

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

2019-03-31 19:22:30 61

原创 Fizz Buzz

题目描述写一个程序,输出从 1 到 n 数字的字符串表示。如果 n 是3的倍数,输出“Fizz”;如果 n 是5的倍数,输出“Buzz”;3.如果 n 同时是3和5的倍数,输出 “FizzBuzz”。示例:n = 15,返回:[ "1", "2", "Fizz", "4", "Buzz", "Fizz", "7"...

2019-03-30 19:10:55 398

原创 打家劫舍

题目描述你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷...

2019-03-30 08:17:53 73

原创 最大子序和

题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。解法思路1:对于含有正数的序列而言,最大子序列肯定是正数,...

2019-03-29 08:10:38 95

原创 买卖股票的最佳时机

题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...

2019-03-29 07:21:37 188

原创 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2...

2019-03-28 08:21:24 201

原创 第一个错误的版本

题目描述你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中...

2019-03-28 07:40:19 167

原创 将有序数组转换为二叉搜索树

题目描述将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -...

2019-03-27 23:02:36 404

原创 二叉树的层次遍历

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]解题思路:使用广度优先遍历,子循环使用层次节点数递减代码如下:public ...

2019-03-27 22:39:08 212

原创 对称二叉树

题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [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-27 08:19:58 83

原创 验证二叉搜索树

题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6...

2019-03-26 07:55:37 117

原创 二叉树的最大深度

题目描述给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。TreeNodeclass TreeNode { int val; pub...

2019-03-25 22:35:24 232

原创 二叉树的遍历

二叉树的遍历分为:深度优先遍历广度优先遍历其中,深度优先遍历又分为:前序遍历(根–>左子–>右子)中序遍历(左子–>根–>右子)后续遍历(左子–>右子–>根)下面分别介绍这2类,4种遍历方式:前序遍历/** * 前序遍历,递归法 * @param root */ public void preOrderTraverse(T...

2019-03-25 08:21:56 138

原创 2019-03-22-算法-进化(环形链表)

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

2019-03-23 12:46:51 101

原创 2019-03-22-算法-进化(回文链表)

题目描述请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?解题思路1:直接利用List的顺序存储性,解题/** * 思路1:数组存储法 * 时间复杂度O(n),空间复杂度O(n) * @p...

2019-03-22 08:02:20 78

原创 2019-03-21-算法-进化(合并两个有序链表)

题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路1:双指针法/** * 合并两个有序链表(默认为升序) * 双指针法 * @param l1 * @param l2 * @r...

2019-03-21 21:21:45 65

原创 2019-03-18-算法-进化(反转链表)

题目描述反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?/** * 思路1:迭代法,直接依次反转链表 * 时间复杂度O(n),空间复杂度O(1) * @param head * @...

2019-03-21 08:17:26 62

原创 2019-03-18-算法-进化(删除链表的倒数第N个节点)

给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?解法:/** * 思路1:朴素法,第一遍遍历找到链表长度,第二遍找到应删除...

2019-03-20 08:08:59 130

原创 2019-03-18-算法-进化(有效的字母异位词)

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?...

2019-03-19 14:44:20 139

原创 2019-03-19-算法-进化(报数)

题目描述报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , ...

2019-03-19 08:12:40 198

原创 2019-03-18-算法-进化(实现strStr())

题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle ...

2019-03-18 22:20:39 263

原创 2019-03-18-算法-进化(字符串中的第一个唯一字符)

题目描述给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = "leetcode"返回 0.s = "loveleetcode",返回 2.注意事项:您可以假定该字符串只包含小写字母。思路1:暴力破解法,时间复杂度:O(n^2),空间复杂度O(1)public int firstUniqChar(String s) { if(...

2019-03-18 16:38:13 115

原创 2019-03-15-算法-进化(有效的数独)

题目描述判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[ ["5","3",".",".","7...

2019-03-15 17:08:19 96

原创 2019-03-15-算法-进化(两数之和)

题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]解题:...

2019-03-15 08:20:06 71

原创 2019-03-14-算法-进化(移动零)

题目描述给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组尽量减少操作次数/** * 思路1:从左向右遍历,遇到零就将零右边的未移位的(i, length-i)全部左移 * @param nums */ p...

2019-03-15 07:49:10 124

原创 2019-03-14-算法-进化(两个数组的交集 II)

题目描述给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2,2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [4,9]说明:输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致我们可以不考虑输出结果的顺序进阶:如...

2019-03-14 08:25:32 77

原创 2019-03-13-算法-进化(验证回文串)

题目描述给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false解题:双指针法,O(n)时间内搞定public boolean isPalindr...

2019-03-13 21:09:02 73

原创 2019-03-13-算法-进化(鸡蛋掉落)

题目描述你将获得 K 个鸡蛋,并可以使用一栋从 1 到 N 共有 N 层楼的建筑。每个蛋的功能都是一样的,如果一个蛋碎了,你就不能再把它掉下去。你知道存在楼层 F ,满足 0 <= F <= N 任何从高于 F 的楼层落下的鸡蛋都会碎,从 F 楼层或比它低的楼层落下的鸡蛋都不会破。每次移动,你可以取一个鸡蛋(如果你有完整的鸡蛋)并把它从任一楼层 X 扔下(满足 1 <=...

2019-03-13 07:44:05 191

原创 2019-03-12-算法-进化(合并两个有序数组)

题目描述给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 ...

2019-03-12 18:13:09 99

原创 2019-03-11-算法-进化(搜索二维矩阵II)

题目描述编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:每行的元素从左到右升序排列每列的元素从上到下升序排列示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 1...

2019-03-11 20:34:05 609

原创 2019-03-11-算法-进化(求众数)

题目描述给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2思路:数组先排序,然后取length/2的元素。时间复杂度:O(nlog(n)),空间复杂度O(1)摩尔投票法。时...

2019-03-11 17:07:02 202

原创 2019-03-10-算法-进化(只出现一次的数字)

题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4线性时间复杂度,再加上不使用额外空间,抓耳挠腮想了半天,也没想到解决方案。一看评论区“异或”,恍然大悟。...

2019-03-10 09:40:48 67

原创 2019-03-10-算法-进化(存在重复)

给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true思路如下:利用Java set元素去重法,最后...

2019-03-10 08:55:59 103

原创 2019-03-09-算法-进化(旋转数组)

题目描述给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,9...

2019-03-10 08:33:30 80

原创 2019-03-09-算法-进化(买卖股票的最佳时机 II)

题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔...

2019-03-09 18:46:13 125

原创 2019-03-09-算法-进化(从排序数组中删除重复项)

题目描述给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2...

2019-03-09 08:55:15 64

原创 2019-03-06-算法-进化(最接近的三数之和)

题目描述给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).思路和之前文章(三数之和:htt...

2019-03-07 10:50:54 76

原创 2019-03-06-算法-进化(三数之和)

题目描述给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]我的初步思路:利...

2019-03-06 11:11:34 89

原创 kettle 空字符串 & null问题解决

今天,在配置kettle同步mysql数据的时候,碰到了kettle把空字符串当成null的情况。解决步骤:找到配置文件:C:\Users\用户名.kettle目录中找到kettle.properties添加配置:KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=Y重启kettleOK,问题解决。...

2019-03-05 15:39:09 4860 1

原创 2019-03-5-算法-进化(最长公共前缀)

题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]

2019-03-05 08:27:40 144

Docker技术入门与实战

Docker经典学习教程,介绍了docker的核心概念:镜像、容器、仓库,以及一些实战经验

2018-05-07

codetemplates.xml

eclipse里的java 注释模板。

2016-07-07

一个简单的贪吃蛇游戏

这个是个人近期写的贪吃蛇,实现了随机生成食物,按键按下加速,松开减速,撞壁死亡等功能

2015-02-26

数据结构与算法上机题目及答案

数据结构上机的参考题目以及优质代码,有兴趣的同学可下载作为参考

2012-10-20

PL0编译原理实践

大连理工软甲学院小学期编译课程代码及详解

2012-07-17

空空如也

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

TA关注的人

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