- 博客(75)
- 问答 (2)
- 收藏
- 关注
原创 区间重叠问题
区间重叠问题今天做了几道区间重叠的问题,做法都非常类似,总结一下。452. 用最少数量的箭引爆气球 重叠区间个数435. 无重叠区间 更新时取区间最小值模拟删除区间操作763.划分字母区间 获取每个字母的区间然后将重叠的进行合并56. 合并区间 直接将将重叠的进行合并这四道是非常典型的区间重叠问题,对这类问题就需要首先根据区间的起始位置进行排序。排序完成后进行遍历,遍历的过程中,根据题目条件更新区间的范围。因为区间们是已经排好序的,所以如果新区间的头部小于(包不包括等于条件以题目设定为
2021-09-30 15:59:35
1315
原创 N皇后问题---线性方程处理
N皇后问题—线性方程处理关键词:回溯 JavaScript题目:n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。皇后彼此不能相互攻击,也就是说:任何两个皇后都不能处于同一条横行、纵行或斜线上来源:力扣(LeetCode)链接:https://leetcode-cn.co
2021-09-23 13:57:14
472
原创 根据遍历结果构建二叉树
根据遍历结果构建二叉树今天做了两道题:105. 从前序与中序遍历序列构造二叉树106. 从中序与后序遍历序列构造二叉树特地来总结一下:构造二叉树的核心思想就是利用找出根节点,将数组分为左右子树;然后对左右子树也进行这种操作划分为更小的结构,直到子树为空。定义一个子函数用于返回该子树的根节点。1. 前序和中序构建根据前序遍历从根节点开始,即中左右的顺序,可以确定根节点。然后利用根节点在中序遍历中的位置(中序遍历是左中右),就可以将树分为左子树和右子树,然后对于子树们,利用同样的方法就可以在
2021-09-10 18:29:54
1437
1
原创 JavaScript高级程序设计 第十四章---DOM 文档对象模型
第十四章本章内容理解文档对象模型(DOM)的构成节点类型浏览器兼容性MutationObserver 接口文档对象模型(DOM,Document Object Model)是HTML 和XML 文档的编程接口。DOM 表示由多层节点构成的文档,通过它开发者可以添加、删除和修改页面的各个部分。脱胎于网景和微软早期的动态HTML(DHTML,Dynamic HTML),DOM 现在是真正跨平台、语言无关的表示和操作网页的方式。14.1 节点层级任何HTML 或XML 文档都可以用DOM表示
2021-09-03 12:18:41
1240
原创 堆排序及leetcode347---前 K 个高频元素
堆排序及leetcode347—前 K 个高频元素大顶堆:堆首元素是最大元素小顶堆:堆首元素是最小元素堆排序的基本思路:将无需序列构建成一个堆,根据升序降序需求选择大顶堆或小顶堆;将堆顶元素与末尾元素交换,将最大元素"沉"到数组末端;重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整+交换步骤,直到整个序列有序。堆排序算法说明:图解排序算法(三)之堆排序图解方式非常清晰直观。注意堆排序初始操作1是从下开始的非叶子节点进行操作,如果与上层父节点的
2021-09-02 14:07:41
471
原创 JS中遇到的二进制位运算问题
JS中遇到的二进制位运算问题知识点:JS中的负值是通过补码来进行保存的,补码的计算流程就是:确定绝对值的二进制表示(如,对于-18,先确定18 的二进制表示);找到数值的一补数(或反码),换句话说,就是每个0 都变成1,每个1 都变成0;给结果加1。而补码转换回十进制的方法就是:补码减1按位取反位运算遇到过这样一个语句,不是很理解原理:i = i | 0;后来在网上找到了资料解释很清晰:二进制位运算符即位运算符只对整数起作用,如果一个运算子不是整数,会自动转为整数后再执行
2021-09-01 11:21:49
1810
原创 KMP算法及JavaScript实现
KMP算法及JavaScript实现KMP模式匹配算法用于在文本串中快速查找模式串是否存在。重点就在于构建最大相同前缀后缀数组。
2021-08-28 12:56:44
725
原创 JavaScript高级程序设计 第12章---BOM浏览器对象模型
第12章 BOM本章内容:理解BOM的核心——window 对象控制窗口及弹窗通过location 对象获取页面信息使用navigator 对象了解浏览器通过history 对象操作浏览器历史BOM是使用JavaScript 开发Web 应用程序的核心,提供了与网页无关的浏览器功能对象。
2021-08-26 12:25:53
1097
原创 JavaScript高级程序设计第十章--- 函数(一)
JavaScript高级程序设计 第十章 函数本章内容: - 函数表达式、函数声明及箭头函数 - 默认参数及扩展操作符 - 使用函数实现递归 - 使用闭包实现私有变量
2021-08-24 15:41:16
332
原创 JavaScript高级程序设计第六章---集合引用类型
JavaScript高级程序设计第六章---集合引用类型本章内容: - 对象 - 数组与定型数组 - Map、WeakMap、Set 以及WeakSet 类型
2021-08-11 17:18:23
351
原创 JavaScript高级程序设计---第五章 基本引用类型
JavaScript高级程序设计---第五章 基本引用类型本章内容理解对象基本JavaScript 数据类型原始值与原始值包装类型
2021-08-05 16:53:45
748
原创 刷题记录本
8/4 刷题记录题目顺序来自于 LeetCode 刷题攻略数组(全部):1. 二分法:明确区间,边界条件设定704.二分查找题目链接:https://leetcode-cn.com/problems/binary-search/35.搜索插入位置题目地址:https://leetcode-cn.com/problems/search-insert-position/根据大小关系直接在指定位置插入2. 双指针27.移除元素题目地址:https://leetcode-cn.com
2021-08-04 19:25:47
201
原创 JavaScript超出数组长度不报错
JavaScript超出数组长度不报错今天,在做题的时候,遇到了这样一个问题 while (sum < target) { right++; sum += nums[right];}这里while循环没有添加对right索引超出数组长度时的限制,但依然没有报错,程序可以正常运行。这里检查了下原因,发现当right超出范围时,nums[right]输出是undefinedconsole.log(nums[nums.length]) //undefined当undefined与数相
2021-08-04 15:58:21
759
原创 JavaScript高级程序设计 第四章---变量 作用域 内存
JavaScript高级程序设计 第四章关键字:变量 作用域 内存本章内容 - 通过变量使用原始值与引用值 - 理解执行上下文 - 理解垃圾回收
2021-08-03 13:38:08
507
原创 leetcode114---二叉树展开为链表
leetcode114—二叉树展开为链表关键字:二叉树 前序遍历给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]来源:力扣(LeetCode)链接:https://lee
2021-07-30 15:59:36
298
原创 JavaScript 高级程序设计 第三章---语言基础(3)
第三章---语言基础(3)教材:JavaScript 高级程序设计关键字:语句 函数
2021-07-29 14:06:55
150
原创 JavaScript 高级程序设计 第三章---语言基础(2)
第三章---语言基础(2)教材:JavaScript 高级程序设计关键字: 数据类型 操作符
2021-07-29 11:18:46
178
1
原创 CSS3练习
CSS3练习教材:CSS设计指南文章目录CSS3练习思路1. 为盒模型添加阴影2. 将边界赋予圆角效果:3. 居中没有宽度的元素4.关于inline-block:5.过渡动画6.文本阴影7.CSS3 transform结果思路确定网页的布局与结构,将它们分割开来,先写出各个主要的结构化标记。为包含整体的<body>标记等先添加一些基础的CSS,如font-family,background,margin等等,确定一个基准。逐步对每个结构添加内容并进行样式化。1. 为盒模型
2021-07-09 09:30:30
576
原创 leetcode11---盛最多水的容器
leetcode11—盛最多水的容器关键词: 双指针 贪心给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器。示例1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组[1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝
2021-07-07 15:12:34
515
1
原创 CSS设计指南---页面布局
CSS设计指南—页面布局教材:CSS设计指南实现多栏布局三种方案:固定宽度:固定宽度布局的大小不会随用户调整浏览器窗口大小而变化,一般是 900 到1100像素宽。流动: 流动布局的大小会随用户调整浏览器窗口大小而变化。这种布局能够更好地适应大屏幕,但同时也意味着放弃对页面某些方面的控制,比如随着页面宽度变化,文本行的长度和页面元素之间的位置关系都可能变化。弹性:弹性布局与流动布局类似,在浏览器窗口变宽时,不仅布局变宽,而且所有内容元素的大小也会变化,让人产生一种所有东西都变大了
2021-06-29 18:13:15
1927
2
空空如也
DOM型XSS攻击具体是什么样的
2021-10-29
关于网页版的JS编辑器,如何实现编译并读取结果
2021-10-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人