06 2020 档案

摘要:剑指 Offer 09. 用两个栈实现队列 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例: 输入: ["CQueue 阅读全文
posted @ 2020-06-30 20:51 macguz 阅读(120) 评论(0) 推荐(0) 编辑
摘要:215. 数组中的第K个最大元素 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例: 输入: [3,2,1,5,6,4] 和 k = 2 输出: 5 输入: [3,2,3,1,2,4,5,5,6] 和 k = 4 输出 阅读全文
posted @ 2020-06-29 23:09 macguz 阅读(123) 评论(0) 推荐(0) 编辑
摘要:209. 长度最小的子数组 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。 示例: 输入:s = 7, nums = [2,3,1,2,4,3] 输出:2 解释:子数组 [4,3] 是 阅读全文
posted @ 2020-06-29 22:49 macguz 阅读(101) 评论(0) 推荐(0) 编辑
摘要:三、原生函数: ​ JS中有许多内建函数(built-in function),也叫原生函数(native function)。 String() Number() Boolean() Array() ... Symbol() ​ JS中的原生函数看起来和Java等面向对象语言中的构造函数十分相似, 阅读全文
posted @ 2020-06-28 12:49 macguz 阅读(152) 评论(0) 推荐(0) 编辑
摘要:二、值: ​ 本章介绍JS中的几个内置值类型。 一)、数组: 不同于 强类型语言,JS中的数组可以容纳任何类型的值。 对数组声明后即可向其中加入值,不需要预先设定大小。 数组通过数字进行索引,但是它们也是对象,因此可以包含字符串键值对。 如果字符串键可以被强制类型转换为十进制数字的话,就会被当作数字 阅读全文
posted @ 2020-06-27 21:42 macguz 阅读(146) 评论(0) 推荐(0) 编辑
摘要:一、类型: ​ 类型是值的内部特征,它定义了值得行为,以使其区别于其他值。 一)、内置类型: ​ JS中一共有七种内置类型: null undefined boolean number string object symbol ​ 使用 typeof运算符可以查看值得类型,但是 null值返回的是o 阅读全文
posted @ 2020-06-27 21:35 macguz 阅读(130) 评论(0) 推荐(0) 编辑
摘要:面试题 02.01. 移除重复节点 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 示例: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 输入:[1, 1, 1, 1, 2] 输出:[1, 2] 分析: ​ 链表结点移除的本质就是 将被删除结点的前驱结点连向后继 阅读全文
posted @ 2020-06-27 11:07 macguz 阅读(126) 评论(0) 推荐(0) 编辑
摘要:一、1486. 数组异或操作: 给你两个整数,n 和 start 。 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 n == nums.length 。 请返回 nums 中所有元素按位异或(XOR)后得到的结果。 示例: 输入:n = 5, start 阅读全文
posted @ 2020-06-27 10:38 macguz 阅读(173) 评论(0) 推荐(0) 编辑
摘要:139. 单词拆分 给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例: 输入: s = "leetcode", wordDict = 阅读全文
posted @ 2020-06-25 17:19 macguz 阅读(167) 评论(0) 推荐(0) 编辑
摘要:六、行为委托: ​ 总结第五章,JS中的[[Prototype]]机制就是 对象之间的关联关系。 一)、面向委托的设计: ​ 想要学习更直观的使用[[Prototype]],必须认识到它代表了一种 不同于类的设计模式。 1、类理论: ​ 类设计模式鼓励你在继承时使用方法重写(和多态),子类的许多行为 阅读全文
posted @ 2020-06-25 11:40 macguz 阅读(170) 评论(0) 推荐(0) 编辑
摘要:173. 二叉搜索树迭代器 实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 示例: BSTIterator iterator = new BSTIterator(root); iterator.next(); // 返回 阅读全文
posted @ 2020-06-24 15:32 macguz 阅读(194) 评论(0) 推荐(0) 编辑
摘要:16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。 示例: 输入:nums = [-1,2,1,-4], target = 1 输出:2 阅读全文
posted @ 2020-06-24 10:15 macguz 阅读(131) 评论(0) 推荐(0) 编辑
摘要:67. 二进制求和 给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为 非空 字符串且只包含数字 1 和 0。 示例: 输入: a = "11", b = "1" 输出: "100" 输入: a = "1010", b = "1011" 输出: "10101" 分析: ​ 最简单的做法是将 阅读全文
posted @ 2020-06-23 10:51 macguz 阅读(132) 评论(0) 推荐(0) 编辑
摘要:五、原型: 一)、[[Prototype]]: ​ JS中的对象有一个特殊的**[[Prototype]]**内置属性,就是对于其他对象的引用。虽然可以为空,但是几乎所有的对象在创建时[[Prototype]]都会被赋予一个非空的值。 ​ 前面提过引用对象的属性时会触发[[Get]]操作。对于默认的 阅读全文
posted @ 2020-06-23 00:17 macguz 阅读(236) 评论(0) 推荐(0) 编辑
摘要:四、混合对象“类”: ​ 在研究类的具体机制之前,首先介绍 面向类的设计模式:实例化(instantiation)、继承(inheritance)和(相对)多态(polymorphism)。 一)、类理论: ​ 面向对象编程强调的是数据和操作数据的行为本质上是互相关联的。 1、“类“设计模式: ​ 阅读全文
posted @ 2020-06-21 23:15 macguz 阅读(210) 评论(0) 推荐(0) 编辑
摘要:124. 二叉树中的最大路径和 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 示例: 输入: [1,2,3] 1 / \ 2 3 输出: 6 输入: [-10,9,20,null,null,15, 阅读全文
posted @ 2020-06-21 21:26 macguz 阅读(192) 评论(0) 推荐(0) 编辑
摘要:10. 正则表达式匹配 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字 阅读全文
posted @ 2020-06-20 19:37 macguz 阅读(240) 评论(0) 推荐(0) 编辑
摘要:一、5436. 一维数组的动态和: 给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。 请返回 nums 的动态和。 示例: 输入:nums = [1,2,3,4] 输出:[1,3,6,10] 解释:动态和计算过程为 [ 阅读全文
posted @ 2020-06-19 10:15 macguz 阅读(228) 评论(0) 推荐(0) 编辑
摘要:125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 **说明:**本题中,我们将空字符串定义为有效的回文串。 示例: 输入: "A man, a plan, a canal: Panama" 输出: true 输入: "race a car" 输出 阅读全文
posted @ 2020-06-19 08:57 macguz 阅读(109) 评论(0) 推荐(0) 编辑
摘要:1028. 从先序遍历还原二叉树 我们从二叉树的根节点 root 开始进行深度优先搜索。 在遍历中的每个节点处,我们输出 D 条短划线(其中 D 是该节点的深度),然后输出该节点的值。(如果节点的深度为 D,则其直接子节点的深度为 D + 1。根节点的深度为 0)。 如果节点只有一个子节点,那么保证 阅读全文
posted @ 2020-06-18 11:02 macguz 阅读(195) 评论(0) 推荐(0) 编辑
摘要:三、对象: 一)、语法: 对象有两种形式定义: 声明(文字)形式: var myObj = { key: value // ... }; 构造形式: var myObj = new Object(); myObj.key = value; 在声明形式中可以添加多个键/值对,但是在构造形式中必须逐个添 阅读全文
posted @ 2020-06-17 22:41 macguz 阅读(172) 评论(0) 推荐(0) 编辑
摘要:1014. 最佳观光组合 给定正整数数组 A,A[i] 表示第 i 个观光景点的评分,并且两个景点 i 和 j 之间的距离为 j - i。 一对景点(i < j)组成的观光组合的得分为(A[i] + A[j] + i - j):景点的评分之和减去它们两者之间的距离。 返回一对观光景点能取得的最高分 阅读全文
posted @ 2020-06-17 09:56 macguz 阅读(154) 评论(0) 推荐(0) 编辑
摘要:297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻 阅读全文
posted @ 2020-06-16 23:10 macguz 阅读(154) 评论(0) 推荐(0) 编辑
摘要:二、this全面解析: ​ 这一章将详细分析this的各种绑定方式。 一)、调用位置: ​ 要理解绑定方式,首先需要理解 调用位置。 ​ function baz() { // 调用栈: baz // 调用位置: 全局作用域 c 阅读全文
posted @ 2020-06-15 22:25 macguz 阅读(232) 评论(0) 推荐(0) 编辑
摘要:14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 所有输入只包含小写字母 a-z 。 示例: 输入: ["flower","flow","flight"] 输出: "fl" 输入: ["dog","racecar","car"] 输出: 阅读全文
posted @ 2020-06-15 09:36 macguz 阅读(107) 评论(0) 推荐(0) 编辑
摘要:四、HAVING子句的力量: ​ SQL与其他语言的最大不同点在于SQL是一种基于“面向集合”思想设计的语言。在自联结这一节中就已经介绍了面向集合的概念。我们将表看作抽象度较高的集合,这一节将学习以集合为单位进行操作。 一)、寻找缺失的编号: seq(连续编号) name(名字) 1 迪克 2 安 阅读全文
posted @ 2020-06-14 23:43 macguz 阅读(233) 评论(0) 推荐(0) 编辑
摘要:1300. 转变数组后最接近目标值的数组和 给你一个整数数组 arr 和一个目标值 target ,请你返回一个整数 value ,使得将数组中所有大于 value 的值变成 value 后,数组的和最接近 target (最接近表示两者之差的绝对值最小)。 如果有多种使得和最接近 target 的 阅读全文
posted @ 2020-06-14 23:21 macguz 阅读(166) 评论(0) 推荐(0) 编辑
摘要:一、关于this: 一)、为什么要用this? function identity() { return this.name.toUpperCase(); } var me = { name: "Kyle" }; var you = { name: "Reader" }; identity.call 阅读全文
posted @ 2020-06-13 23:44 macguz 阅读(186) 评论(0) 推荐(0) 编辑
摘要:70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? **注意:**给定 n 是一个正整数。 示例: 输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。 1 阶 + 1 阶 + 1 阶 1 阶 + 2 阶 2 阶 阅读全文
posted @ 2020-06-13 11:05 macguz 阅读(185) 评论(0) 推荐(0) 编辑
摘要:面试题68 - I. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 阅读全文
posted @ 2020-06-13 00:22 macguz 阅读(123) 评论(0) 推荐(0) 编辑
摘要:三、三值逻辑和NULL: 一)为什么要使用三值逻辑? ​ 普通语言的布尔型只有true和false两个值,这种逻辑体系被称为二值逻辑。而SQL语言里,还有第三个值unknown,因此这种逻辑体系被称作三值逻辑。 1、两种NULL: ​ 最主要的原因就在于NULL值,因为NULL有两种含义,一种是不确 阅读全文
posted @ 2020-06-12 22:36 macguz 阅读(241) 评论(0) 推荐(0) 编辑
摘要:15. 三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4], 阅读全文
posted @ 2020-06-12 12:09 macguz 阅读(130) 评论(0) 推荐(0) 编辑
摘要:一、1470. 重新排列数组: 给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。 请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排列,返回重排后的数组。 示例: 输入:nums = [2,5,1,3,4 阅读全文
posted @ 2020-06-12 00:11 macguz 阅读(181) 评论(0) 推荐(0) 编辑
摘要:739. 每日温度 根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 示例: 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出 阅读全文
posted @ 2020-06-11 10:04 macguz 阅读(162) 评论(0) 推荐(0) 编辑
摘要:五、作用域闭包: ​ 闭包不是神奇的魔法,它只是遵循我们前几章一直介绍的 词法作用域书写代码的自然结果。 ​ 闭包是由函数以及声明该函数的词法环境组合而成的。该环境包含了这个闭包创建时作用域内的任何局部变量。 一)、回调函数与闭包: 回调函数,将一个函数的引用作为参数传递给另一个函数。 functi 阅读全文
posted @ 2020-06-10 23:22 macguz 阅读(192) 评论(0) 推荐(0) 编辑
摘要:二、自连接的用法: 自连接技术充分体现了SQL面向集合的特性; 一)、可重排列、排列、组合: ​ 组合分为类型:一种是 有顺序的有序对,另一种是 无顺序的无序对。 使用交叉连接生成笛卡尔积就是有序对: SELECT P1.name AS name_1, P2.name AS name_2 FROM 阅读全文
posted @ 2020-06-10 20:00 macguz 阅读(381) 评论(0) 推荐(0) 编辑
摘要:9. 回文数 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例: 输入: 121 输出: true 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 输入: 10 输出: 阅读全文
posted @ 2020-06-10 09:45 macguz 阅读(166) 评论(0) 推荐(0) 编辑
摘要:四、提升: 一)、声明与赋值: ​ 在JS引擎中,我们一般认为的变量或函数声明,实际上分为两个部分。 声明 赋值 // 变量提升 a = 2; var a; console.log(a); // 函数提升 foo(); function foo() { console.log(1); } ​ var 阅读全文
posted @ 2020-06-09 23:07 macguz 阅读(124) 评论(0) 推荐(0) 编辑
摘要:面试题46. 把数字翻译成字符串 给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 示例: 输入: 12258 输出: 阅读全文
posted @ 2020-06-09 22:38 macguz 阅读(194) 评论(0) 推荐(0) 编辑
摘要:一、CASE表达式: 用来描述条件分支; --简单CASE表达式: CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --搜索CASE表达式: CASE WHEN sex = '1' THEN '男' WHEN sex = '2' 阅读全文
posted @ 2020-06-08 23:54 macguz 阅读(273) 评论(0) 推荐(0) 编辑
摘要:三、函数作用域和块作用域: 一)、函数中的作用域: ​ JS具有基于函数的作用域。 二)、隐藏内部实现: ​ 由于函数具有单独的作用域,因此可以将一段代码包装在一个函数中,达到隐藏内部实现的作用。这基于 最小暴露原则。这些被隐藏的内容不只有变量,函数也应该被适当隐藏起来。 // 代码1: funct 阅读全文
posted @ 2020-06-08 15:35 macguz 阅读(171) 评论(0) 推荐(0) 编辑
摘要:990. 等式方程的可满足性 给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:"a==b" 或 "a!=b"。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。 只有当可以将整数分配给变量名,以便满足所 阅读全文
posted @ 2020-06-08 10:50 macguz 阅读(141) 评论(0) 推荐(0) 编辑
摘要:二、词法作用域: ​ 作用域共有两种主要的工作模型。普遍被采用的的是第一种,词法作用域。另一种为 动态作用域,被Bash脚本、Perl中的一些模式所采用。 一)、词法阶段: ​ 第一章提到过编译阶段之一——词法分析。词法作用域就是定义在词法阶段的作用域,即词法作用域由你在写代码时将变量和块作用域写在 阅读全文
posted @ 2020-06-07 15:10 macguz 阅读(184) 评论(0) 推荐(0) 编辑
摘要:一、作用域是什么? 储存和访问变量的值的能力将状态带给了程序。但是变量储存再哪里,当程序需要时如何找到它们? 一)、编译原理: ​ JS通常被称作 动态、解释型语言,但它实际上是 **编译型语言。**但与传统的编译语言不同,它不是提前编译的,编译结果也不能再分布式系统中进行移植。 ​ 传统编译语言的 阅读全文
posted @ 2020-06-07 15:09 macguz 阅读(225) 评论(0) 推荐(0) 编辑
摘要:238. 除自身以外数组的乘积 给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请**不要使用 阅读全文
posted @ 2020-06-07 10:01 macguz 阅读(212) 评论(0) 推荐(0) 编辑
摘要:128. 最长连续序列 给定一个未排序的整数数组,找出最长连续序列的长度。 要求算法的时间复杂度为 O(n)。 示例: 输入: [100, 4, 200, 1, 3, 2] 输出: 4 解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。 分析: ​ 如果是有序数组,只需要遍历一次相邻 阅读全文
posted @ 2020-06-06 21:56 macguz 阅读(197) 评论(0) 推荐(0) 编辑
摘要:一、5424. 数组中两元素的最大乘积: 给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。 请你计算并返回该式的最大值。 示例: 输入:nums = [3,4,5,2] 输出:12 解释:如果选择下标 i=1 和 j 阅读全文
posted @ 2020-06-05 22:53 macguz 阅读(156) 评论(0) 推荐(0) 编辑
摘要:面试题29. 顺时针打印矩阵 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。 示例: 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10 阅读全文
posted @ 2020-06-05 22:52 macguz 阅读(70) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示