
javascript
flower in my heart
这个作者很懒,什么都没留下…
展开
-
前端开发工具HbuilderX的使用技巧
自己总结的HbuilderX工具的使用技巧,新手必看!原创 2022-03-24 16:33:09 · 6504 阅读 · 0 评论 -
前端笔试算法题-最新出炉!(全A)
1.题目:数组:[1,3,5,8]输出:7【输出最大差】上代码:function getMaxDiff( arr ) { // write code here var newarr = sort(arr); var length = newarr.length; console.log(newarr[length-1]-newarr[0]);}function sort(arr){ for(let i=0;i<arr.length;i++原创 2020-09-12 22:23:41 · 654 阅读 · 0 评论 -
leetcode-53-最大子序列之和
1.题目描述:给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2.上代码:/** ...原创 2020-07-28 09:10:34 · 152 阅读 · 0 评论 -
leetcode-38-报数
1.题目描述:给定一个正整数 n(1 ≤n≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一项,这个数是 1 即 “一个 1 ”,记作 11描述前一项,这个数是 11 即 “两个 1 ” ,记作 21描述前一项,这个数是 ...原创 2020-07-28 08:56:44 · 145 阅读 · 0 评论 -
leetcode-9-回文数
1.题目描述:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。2.题目分析:(1),首先我们要先排除一些一定是回文数的情况和不是回文数的...原创 2020-07-24 14:50:36 · 151 阅读 · 0 评论 -
简单贪心问题-圣诞老人的礼物
1.题目描述:圣诞老人要给每家每户从不同的礼物,但是圣诞老人的车只能承载一定的重量。请问圣诞老人该怎样装载礼物才能使得整车的总价值最大。2.解题思路:看其每个礼物的性价比,谁的性价比最大,则谁先装入圣诞老人的车里。3.上代码:(1)性价比排序算法:function sortDenisty(nums){ for(let i = 0;i<nums.length;i++) { for(let j=i+1;j<nums.length;j++)原创 2020-07-24 09:59:47 · 399 阅读 · 0 评论 -
简单贪心算法-不选择相交子区间
1.题目描述:给出多个区间,如何选择才能使得无相交的区间数最多,并输出最多的区间个数;2.题目分析:(1)要使得无相交的区间数最多,则得选择子区间。(2)而且每个节点的右区间要进行从小到大的排序。3.上代码:(1)右区间的排序算法:function sortRight(nums){ for(let i = 0;i<nums.length;i++) { for(let j=i+1;j<nums.length;j++)原创 2020-07-24 08:59:44 · 168 阅读 · 0 评论 -
简单贪心算法-最优装载问题
1.题目描述:不同的货物类型有不同的重量,现在给我可以最大装载量,请问最多可以装载多少货物。eg:输入:不同货物的类型和重量;输出:最大的装载量2.解题思路:(1)首先,我们要解决不同货物类型有不同的重量,这个明显是一个对象数组,这个时候,我们就要进行相应的排序。(从小到大)(2)我们将排序好的货物,进行添加到我们的装载车上,要有resWeight来标记装载的剩余重量。当前的货物重量不能打印剩余重量。(3)最后输出装载的货物总数。3.上代码:(1)排序算法:fun原创 2020-07-23 22:45:08 · 710 阅读 · 0 评论 -
最简单的贪心算法-最优服务次序问题
1.题目描述:有每个客户的服务时间,请计算最短的平均等待时间。eg:输入:[1,12,55]输出:27.3333...22.问题分析: 当服务时间最短的客户,先服务,这样的平均等待时间才最短。(1)客户的服务时间可能是不是一个排序好的数据结构,所以,我们得先对其进行排序(从小到大);(2)之后,就依次累加时间。(3)最后返回平均时间:累加时间/客户的数量3.上代码:function MinusQueneTime(nums){ var sum = 0; .原创 2020-07-23 21:52:06 · 513 阅读 · 0 评论 -
leetcode-226-翻转二叉树-JavaScript实现
1.题目描述:翻转一棵二叉树。输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \9 6 3 12.解题思路:(1)从根节点开始判断,然后新建一个node 来接收root.left,来进行节点交换(2)采用递归来进行交换,知道判断root==null,就是到了尽头了,这个时候就返回null。(3)最后返回交换后的root;3.上原创 2020-07-22 11:48:42 · 287 阅读 · 0 评论 -
leetcode-26-删除排序数组中重复项
1.题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。eg:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。2.解题思路:(1)重要:就是这个数组必须是经过排序好的数组才行,不然结果不成立。(2)..原创 2020-07-22 11:31:17 · 126 阅读 · 0 评论 -
leetcode-27-移除元素-JavaScript实现
1.题目描述:给你一个数组 nums和一个值 val,你需要 原地 移除所有数值等于val的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。eg:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数组中超出新长度后面的元素。2.解题思路:(1)直接修改数组,...原创 2020-07-22 10:44:05 · 317 阅读 · 0 评论 -
leetcode-20-有效的括号-javascript实现
1.题目描述:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串eg:输入: "()"输出: true2.解题思路:(1)采用栈的方式来进行判断,首先是用一个temp的栈,左括号入栈,接着是右括号的判断;(2)右括号的判断方法:如果当前的temp栈为空,则说明没有左括号,不成对;或者是当前的temp的前一个元素不为.原创 2020-07-21 00:15:20 · 233 阅读 · 0 评论 -
leetcode -100-相同的树-javascript实现
1.题目描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。eg:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true2.解题思路:(1)这个代码采用的是递归调用的思想,左右子树分别判断,如果左子树和右子树都判断到null,就是到最后了,那就返回true;...原创 2020-07-20 22:54:43 · 250 阅读 · 0 评论 -
leetcode-66-加一-javascript实现
1.题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。eg:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。2.解题思路:(1).说是数组的加1,其实是类似于我们的数学加法进位问题(2)要考虑三个点:---》最后一位数字为9的话,则该位进位,变为0;---》如果最后一位数字不为9的话,则该位数字+原创 2020-07-20 22:38:57 · 305 阅读 · 0 评论 -
leetcode-字节跳动-挑战字符串-求最长公共前缀
1.题目描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。eg:输入: ["flower","flow","flight"]输出: "fl"输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。2.上代码(理解代码:看注释部分!)var longestCommonPrefix = function(strs) { if(strs.length<1) //首先,这个部分是.原创 2020-07-17 15:54:19 · 197 阅读 · 0 评论 -
leetcode-字节跳动-挑战字符串-求无重复字符的最长子串
1.题目描述:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。eg:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。2.上代码:var lengthOfLongestSubstring = function(s) { var str = ""; var size = 0; for(let i=0,len = s.length;i<len;i++) { ..原创 2020-07-17 08:21:40 · 137 阅读 · 0 评论 -
leetcode-字符转整数(常错的题)
1.解题注意点:(1)首先,要注意到最大值和最小值的返回问题,根据题目的需要来选择。(2)接着,就是如何解决空格等问题(在开头设置一个描点,然后来判断“+”,“-”) (3) 然后除去其他的符号的情况,判断是否在0-9,如果不是的话,break;2.上代码:/** * @param {string} str * @return {number} */var myAtoi = function(str) { const max= 0x7fffffff; cons.原创 2020-07-16 16:15:06 · 90 阅读 · 0 评论 -
leetcode-整数反转
1.代码思路:(1).要考虑到最大数和最小数的范围:(如果是32位的话,最大数为:max = 0x7fffffff;最小数为:-0x80000000;)(2)要考虑到在数据反转的过程中,可能会出现数据一次的情况(所以在循环的时候要进行判断)2.上代码:/** * @param {number} x * @return {number} */var reverse = function(x) { const max = 0x7fffffff; const min原创 2020-07-16 14:55:09 · 112 阅读 · 0 评论 -
小红书-2020前端-卷一(选择题分析)
1.关于html渲染和页面阻塞问题:(1)在html开始解析dom树的时候,如果遇到css文件或者是js脚本的导入的话,则会先对其进行下载,所以css文件和js脚本会阻塞html的解析(2)构建CSS Object Model(CSSOM)会阻塞JavaScript的执行。JavaScript的执行也会阻塞DOM的构建。(3)如果采用普通方式来加载iframe的话<iframe src="/path/to/file" frameborder="0" width="728" he.原创 2020-07-14 15:50:11 · 682 阅读 · 0 评论 -
剑指offer-从上到下打印二叉树-JavaScript实现
1.题目描述:从上往下打印出二叉树的每个节点,同层节点从左至右打印。2.上代码:/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */function PrintFromTopToBottom(root){ // write code here // write code here var arr=[]; var data=[原创 2020-07-13 16:47:49 · 353 阅读 · 0 评论 -
剑指offer-搜索二叉树的中序遍历(改编)-JavaScript实现
1.题目描述:给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。2.上代码:/* function TreeNode(x) { this.val = x; this.left = null; this.right = null;} */var k =0;function test(pRoot){ var temp = new TreeNode(null); if(p..原创 2020-07-13 16:35:15 · 119 阅读 · 0 评论 -
leetcode-判断是否为平衡树-javascript实现
/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } *//** * * @param root TreeNode类 * @return bool布尔型 */function depth(root){ if(!root) { return 0; }else if(!(root.left)&am.原创 2020-07-13 15:42:48 · 131 阅读 · 0 评论 -
leetcode-判断是否为搜索二叉树(BST/排序二叉树)-javasript实现
/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } *//** * * @param root TreeNode类 * @return bool布尔型 */function findleft(root){ while(root.left) { root = root.left; } .原创 2020-07-13 15:29:33 · 259 阅读 · 0 评论 -
javascript-冒泡玩出不同花样!
1.普通的冒泡排序:function sort(arr){ var length =arr.length; for(let i=0;i<length;i++) { for(let j = i;j<length;j++) { if(arr[i]>arr[i+1])//相邻比较 { var temp = arr[i+1];//交换原创 2020-07-13 10:04:27 · 135 阅读 · 0 评论 -
leetcode -maxinum-depth -of-binary-tree----Javascript实现
1.题目描述:求给定二叉树的最大深度,最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量。2.上代码:function maxDepth( root ) { // write code here if(root===null){return 0} else{ return Math.max(maxDepth(root.left),maxDepth(root.right))+1 }}module.exports = { ma原创 2020-07-11 08:24:27 · 105 阅读 · 0 评论 -
leetcode-same tree 算法题 --JavaScript实现
1.题目描述:给出两个二叉树,请写出一个判断两个二叉树是否相等的函数。判断两个二叉树相等的条件是:两个二叉树的结构相同,并且相同的节点上具有相同的值。2.上代码:function isSameTree( p , q ) { // write code here if(q===null &&p===null){return true} if(q!==null && p===null){return false} if(q===原创 2020-07-11 08:15:33 · 150 阅读 · 0 评论 -
javascript中的宏任务和微任务
一、宏任务1.宏任务所处得对了就是宏任务队列。2.第一个宏任务队列中只有一个任务:执行主线程得js代码3.宏任务队列可以有很多个。4.当宏任务队列中的任务全部执行完之后,会查看当前是否有微任务,当当前的伟任务执行完之后,才会执行接下来的宏任务队列5.eg:setTimeout ,setInterval,requestAnimationFrame二、微任务1.微任务所处的队列就是微任务队列2.只有一个微任务队列3.在上一个宏任务队列执行完毕后,如果有微任务队列,就会执行微任原创 2020-07-10 17:52:49 · 1000 阅读 · 1 评论 -
css-垂直居中(高考加油!)
1.通过左上的外边距设定:box{ position: absolute; top: 50%; background-color: gold; height: 40px; margin-top: -40px; /* negative half of the height */ width: 100px;原创 2020-07-07 23:04:38 · 350 阅读 · 0 评论 -
理解js中的arguments和callee,caller的应用-javascript
1.arguments:(函数中使用的参数)eg:2.callee:(1)callee的作用:在函数内部使用,代表当前函数的引用(名字)。(2)可以用于:递归函数<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale原创 2020-07-07 16:01:32 · 252 阅读 · 0 评论 -
给ul中的li绑定事件-javascript
1.html部分代码<ul id="ultest"> <li>html</li> <li>js</li> <li>css</li></ul>2.采用this,来给每个li传递参数i:var li_list = document.getElementById("ultest").getElementsByTagName('li原创 2020-07-07 15:19:59 · 925 阅读 · 0 评论 -
Javascript-模拟栈
1.栈的基本操作:2.对栈基本操作的代码:// 栈的初始化 构造一个空栈function InitStack(){ var stack = []; return stack;}var a = InitStack();console.log(a);// 判断栈是否为空--如果栈为空,则返回1,否则返回0function isEmptyStack(stack){ if(stack.length===0) { return 1;原创 2020-07-03 17:23:07 · 181 阅读 · 0 评论 -
Javascript-模拟队列
1.队列的基本操作:2.模拟队列基本操作的代码:// 队列的初始化;如果队q不存在,则构造一个空队function initQuene(){ var quene = []; return quene;}console.log(initQuene())// 队列的入队操作:对于存在的队列q,插入一个元素x到队尾;function inQuene(quene,value){ quene.push(value); console.log('quene原创 2020-07-03 16:36:39 · 359 阅读 · 0 评论 -
剑指offer-查找二维数组中是否含有target-javascript
1.具体代码:function Find(target, array){ // write code here var row = array.length; var col =array.length; for(let i=0;i<row;i++) { for(let j =0;j<col;j++) { if(array[i][j]=== target)原创 2020-07-03 15:32:26 · 190 阅读 · 0 评论 -
希尔排序(不稳定)-JavaScript
1.代码:function shellSort(arr){ var helf = parseInt(arr.length / 2); //这个是根据其长度来划分间隔 for(let d = helf;d>=1;d=parseInt(d/2))//每次排序完之后,间隔都是原来的一半,但是间隔要大于或者等于1 { for(let i =d;i<arr.length;i++) //从间隔处开始判断 { for(let j = i原创 2020-07-03 15:12:32 · 382 阅读 · 0 评论 -
选择排序-javascript实现
1.具体代码:function chance(arr){ var minIndex =0; var temp; for(let i=0;i<arr.length-1;i++) { minIndex= i; for(let j=i+1;j<arr.length;j++) { if(arr[j]<arr[minIndex]) //把最小的index找出来原创 2020-07-03 14:18:38 · 125 阅读 · 0 评论 -
数据流中的中位数——javascript
var arr =[];function Insert(num){ // write code here arr.push(num); arr.sort(); return arr; }function GetMedian(){ // write code here var mid = Math.floor(arr.length/2); //console.log("mid"+mid); var length = arr..原创 2020-07-03 09:09:09 · 188 阅读 · 0 评论 -
大数相乘-JavaScript
var multiply = function(num1, num2) { const left = '0'.charCodeAt(0); // console.log("left:"+left); // 首先将字符串用 charCodeAt 转换成对应的数字。 // num1Arr 取较短的数字, num2Arr 取较长的数字,用 num1Arr 去分别乘 num2Arr 速度会提升15ms // 这个是规定一定的方向 const num1Arr = (n.原创 2020-07-02 22:12:57 · 342 阅读 · 0 评论 -
大数相加-javascript
1.思路:逢十进一2.代码:var addStrings = function(num1, num2) { let res = '' let i = num1.length - 1 let j = num2.length - 1 let sum = 0 let flag = 0 while(i >= 0 || j >= 0 || flag){ let n1 = +num1[i--] || 0 let n2 =原创 2020-07-02 22:09:11 · 159 阅读 · 0 评论 -
VScode 安装和配置SASS和第一个Sass程序
1.下载Ruby2.下载EASY SASS3.测试程序$primary-color:orange;$secondary-color:gold;body{color:$primary-color;background:$secondary-color;}4.测试程序的结果:body{color:orange;background:gold;}...原创 2020-06-30 13:59:49 · 601 阅读 · 0 评论