- 博客(33)
- 资源 (3)
- 收藏
- 关注
原创 栈---车队
题目N 辆车沿着一条车道驶向位于 target 英里之外的共同目的地。每辆车 i 以恒定的速度 speed[i] (英里/小时),从初始位置 position[i] (英里) 沿车道驶向目的地。一辆车永远不会超过前面的另一辆车,但它可以追上去,并与前车以相同的速度紧接着行驶。此时,我们会忽略这两辆车之间的距离,也就是说,它们被假定处于相同的位置。车队 是一些由行驶在相同位置、具有相同...
2018-11-19 14:17:30 253
原创 栈---股票每日价格
题目编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。 编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票...
2018-11-17 17:30:09 645
原创 栈---行星碰撞
题目给定一个整数数组 asteroids,表示在同一行的行星。对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。找出碰撞后剩下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星都会爆炸。两颗移动方向相同的行星,永远不会发生碰撞。示例输入: asteroids ...
2018-11-17 16:35:15 597
原创 栈---字符串解码
题目给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[...
2018-11-16 20:59:19 627
原创 栈---函数的独占时间
题目给出一个非抢占单线程CPU的 n 个函数运行日志,找到函数的独占时间。每个函数都有一个唯一的 Id,从 0 到 n-1,函数可能会递归调用或者被其他函数调用。日志是具有以下格式的字符串:function_id:start_or_end:timestamp。例如:“0:start:0” 表示函数 0 从 0 时刻开始运行。“0
2018-11-16 20:09:21 467 1
原创 栈---逆波兰表达式求值
题目根据逆波兰表示法,求表达式的值。有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。示例输入: ["2", "1", "+", "3", "*"]输出: 9解释: ((2 + 1) * 3) = 9输入: [".
2018-11-16 12:41:12 270
原创 栈---下一个更大元素
题目给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。示例输入: [1,2,1]输出: [2,-1,2]解释: 第一个 1 的下一个更大的数是 2;数字 2 找不到下一个更大的数;第二个 ...
2018-11-16 12:24:38 248
原创 栈---验证二叉树的前序序列
题目序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 _9_ / \ 3 2 / \ / \ 4 1 # 6/ \ / \ / \# # # # # #例如,上面的二叉树可以被序列化为字符串 "9,3,4,#,#,1,#,#...
2018-11-16 10:59:21 439
原创 栈---二叉树的锯齿形层次遍历
题目给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。示例给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]代码实现import ...
2018-11-16 10:22:40 263
原创 栈---括号的分数
题目给定一个平衡括号字符串 S,按下述规则计算该字符串的分数: 给定一个平衡括号字符串 S,按下述规则计算该字符串的分数:() 得 1 分。AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。(A) 得 2 * A 分,其中 A 是平衡括号字符串。示例输入: "()"输出: 1输入: "(())"输出: 2输入: "()()"输出:
2018-11-14 15:48:27 288
原创 栈---二叉搜索树迭代器
题目实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。调用 next() 将返回二叉搜索树中的下一个最小的数。注意: next() 和hasNext() 操作的时间复杂度是O(1),并使用 O(h) 内存,其中 h 是树的高度。概念二叉搜索树概念:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结...
2018-11-14 15:26:08 336
原创 栈---每日温度
题目根据每日气温列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高的天数。如果之后都不会升高,请输入 0 来代替。示例例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。代码实现思路:可类比找下一个更大元素。提示:气温 列表长度...
2018-11-14 14:57:37 308
原创 栈---扁平化嵌套列表迭代器
题目给定一个嵌套的整型列表。设计一个迭代器,使其能够遍历这个整型列表中的所有整数。列表中的项或者为一个整数,或者是另一个列表。示例输入: [[1,1],2,[1,1]]输出: [1,1,2,1,1]解释: 通过重复调用 next 直到 hasNext 返回false,next 返回的元素的顺序应该是: [1,1,2,1,1]。输入: [1,[4,[6]]]输出: [1,4,6...
2018-11-13 18:24:06 433
原创 栈---二叉树的前序遍历
题目给定一个二叉树,返回它的前序遍历。示例输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]代码实现方法一:a.根节点入栈;b.弹出根节点,访问根节点;判断右孩子是否为空,如果不为空,push入栈;判断左孩子是否为空,如果不为空,push入栈。注:右孩子先入栈,左孩子后入栈,这样可以保证下一次出栈的时候...
2018-11-13 14:27:50 762
原创 栈---二叉树的中序遍历
题目给定一个二叉树,返回它的中序 遍历。示例输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]代码实现对于任意节点,若其左孩子不为空,则将该节点入栈,并将其左孩子置为当前节点,再进行相同处理;若其左孩子为空,弹出栈顶元素,访问该栈顶元素,然后将栈顶元素的右孩子置为当前节点;直到当前节点为null并且栈为空则遍历...
2018-11-13 13:06:50 887 1
原创 栈---有效的括号
题目给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例输入: "()"输出: true输入: "()[]{}"输出: true输入: "(]"输出: false输入: "([)]"输出: false...
2018-11-12 12:12:46 243
原创 栈---比较含退格的字符串
题目给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。示例输入:S = "ab#c", T = "ad#c"输出:true解释:S 和 T 都会变成 “ac”。输入:S = "ab##", T = "c#d#"输出:true解释:S 和 T 都会变成 “”。输入:S = "a##c", T = "#a#c.
2018-11-12 11:24:36 301
原创 栈---最小栈
题目设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) – 将元素 x 推入栈中。pop() – 删除栈顶的元素。top() – 获取栈顶元素。getMin() – 检索栈中的最小元素。示例MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);...
2018-11-12 11:16:05 258
原创 栈---用队列实现栈
题目使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。你所使用的语言也许不支持队列。 你可以使用 list 或者...
2018-11-09 18:07:55 177
原创 栈---用栈实现队列
题目使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回 1queu...
2018-11-09 16:44:49 178
原创 栈---棒球比赛
题目你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。“+”(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。“D”(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。“C”(一个操作,这不是一个回合的分数):表示您获得的最后一个有效 回合的分数是无效的,应该被移除。每一...
2018-11-09 16:18:22 259
原创 栈---下一个更大元素
题目给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出-1。示例示例 1输入: nums1 = [4,1,2], nums2 = [1,3,...
2018-11-07 20:11:59 193
原创 设计模式--工厂模式
工厂方法模式:定义了一个创建对象的接口,但由于子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。抽象工厂模式:提供了一个接口,用于创建相关或依赖对象的家族,而不需要明确指定哪个类。
2016-11-06 21:05:55 371
原创 设计模式--装饰者模式
装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 来杯咖啡Central Perk的名字因为《老友记》而享誉全球,他们的分店几乎开遍世界各地。他们发展的实在是太快了,所以他们此时正在急于实现一套由计算机管理的自动化记账系统。在第一次研究了他们的需求以后,开发者设计了如下图的类结构: Beverage是所有饮料的基类;cost()是抽象方法,所有子类都
2016-11-06 20:37:08 279
转载 设计模式--观察者模式
观察者模式:在对象之间定义一对多依赖,这样一来,当一个对象改变状态,依赖它的对象都会受到通知,并自动更新。气象站的故事现在我们要为一家气象站开发一套气象监控系统,按照客户的要求,这个监控系统必须可以实时跟踪当前的天气状况(温度、湿度、大气压力),并且可以在三种不同设备上显示出来(当前天气状况、天气统计、天气预测)。客户还希望这个系统可以对外提供一个API接口,以便任何开发者都可以开发自己的显示设备,
2016-11-06 20:19:45 321
转载 设计模式--策略模式
策略模式:定义算法族,分别封装起来,让他们之间可以互相替换,次模式让算法的变化独立于使用算法的客户。 模拟鸭子Joe是一名OO程序员,他为一家开发模拟鸭子池塘游戏的公司工作,该公司的主要产品是一种可以模拟展示多种会游泳和呷呷叫的鸭子的游戏。这个游戏是使用标准的面向对象技术开发的,系统里所有鸭子都继承于Duck基类,系统的核心类图如下: 如图所示,在Duck基类里实现了公共的quack()和swi
2016-11-06 19:55:09 217
原创 web储存
一 客户端存储数据的新方法两种方式 LocalStorage 没有时间限制的数据存储 SessionStorage 针对一个session的数据存储与cookie做对比,之前,这些都是由cookie完成。但是cookie不适合大量数据的存储,因为他们由每个服务器的请求来传递,这使得速度很慢而且效率也不高二 localStorage方法存储特点 LocalStorage方法存储的数据没有时间限制
2016-07-07 10:48:41 475
原创 Canvas_2
createjs的应用绘制文本代码:Index.html<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>canvas_2</title> <script src="easeljs-0.8.2.min.js"></script> <script src="canvas_2.js"
2016-07-06 21:23:53 286
原创 Canvas_1
一 创建Canvas标签HTML5元素用于图形的绘制,通过脚本(通常是javascript)来完成 标签只是图形容器,你必须使用脚本来绘制图形 可以通过多种方法使用canvas绘制路径,盒,圆,字符以及添加图像代码1:<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>Canvas_1</ti
2016-07-06 17:29:36 242
原创 HTML5 拖放_2
拖放本地资源Index.html<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>拖放</title> <script src="app1.js"></script> <style> #imgcontainer{ width: 400px;
2016-07-04 16:55:30 260
原创 HTML5 拖放_1
知识点 1.HTML5拖放 拖放(Drag和drop)是HTML5标准的组成部分。 2.拖动开始 ondragstart:调用一个函数,drag(event),它规定了被拖动的数据 3.设置拖动数据 setData():设置被拖数据的数据类型和值 4.放入位置 ondragover:事件规定了何处位置放置被拖动的数据 5.放置 ondrop:当放置被拖数据时,会发生drop事件将
2016-07-04 16:14:31 283
原创 HTML5音频
知识点 1.Audio(音频) HTml5提供了播放音频文件的标准 2.Control(控制器) Control属性供添加,暂停和音量控件 3.标签 定义声音 规定多媒体资源,可以是多个实例1 简单音频播放<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title>播放音频</title>
2016-07-04 11:09:48 453
原创 HTML5视频
工具准备 由于浏览器支持的视频格式不同,需要使用解编码工具FFmpeg进行视频格式转换 FFmpeg可以进行MP4与ogg格式的转换,下载地址www.ffmpeg.org知识点 1.video(视频) Html5提供了展示视频的标准 2.Control(控制器) Control属性供添加播放,暂停和音量控件 3.标签 定义声音 规定多媒体资源,可以是多个 4.属性 Width:
2016-07-04 10:48:24 363
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人