- 博客(144)
- 资源 (11)
- 收藏
- 关注
原创 简单贪心算法-不选择相交子区间
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 148
原创 简单贪心算法-最优装载问题
1.题目描述:不同的货物类型有不同的重量,现在给我可以最大装载量,请问最多可以装载多少货物。eg:输入:不同货物的类型和重量;输出:最大的装载量2.解题思路:(1)首先,我们要解决不同货物类型有不同的重量,这个明显是一个对象数组,这个时候,我们就要进行相应的排序。(从小到大)(2)我们将排序好的货物,进行添加到我们的装载车上,要有resWeight来标记装载的剩余重量。当前的货物重量不能打印剩余重量。(3)最后输出装载的货物总数。3.上代码:(1)排序算法:fun
2020-07-23 22:45:08 667
原创 最简单的贪心算法-最优服务次序问题
1.题目描述:有每个客户的服务时间,请计算最短的平均等待时间。eg:输入:[1,12,55]输出:27.3333...22.问题分析: 当服务时间最短的客户,先服务,这样的平均等待时间才最短。(1)客户的服务时间可能是不是一个排序好的数据结构,所以,我们得先对其进行排序(从小到大);(2)之后,就依次累加时间。(3)最后返回平均时间:累加时间/客户的数量3.上代码:function MinusQueneTime(nums){ var sum = 0; .
2020-07-23 21:52:06 482
原创 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 229
原创 leetcode-26-删除排序数组中重复项
1.题目描述:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。eg:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。2.解题思路:(1)重要:就是这个数组必须是经过排序好的数组才行,不然结果不成立。(2)..
2020-07-22 11:31:17 109
原创 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 266
原创 leetcode-20-有效的括号-javascript实现
1.题目描述:给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串eg:输入: "()"输出: true2.解题思路:(1)采用栈的方式来进行判断,首先是用一个temp的栈,左括号入栈,接着是右括号的判断;(2)右括号的判断方法:如果当前的temp栈为空,则说明没有左括号,不成对;或者是当前的temp的前一个元素不为.
2020-07-21 00:15:20 208
原创 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 220
原创 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 258
原创 java-常常用到的接口该咋配置?
1.接口知识小课堂(1)接口的作用(3) 接口的定义(4)在别的类中实现接口2.具体操作(idea)(1)编写接口:(2)在testDemo中调用接口,并将其具体实现:(3)在Main.class来新建一个testDemo对象,并且调用其方法add();3.运行结果:...
2020-07-18 22:44:52 455
原创 springBoot-入坑第一天(idea配置)
1.新建工程(1)File->new->project:(2)配置编译环境(3)添加服务(4)配置工程名称(5)最后finish就可以了2.添加自己hello world 页面(1)在要添加类的目录下,鼠标右键,选择:new->Java Class;(2)插入代码:package com.example.demo;import org.springframework.web.bind.annotation.RequestM..
2020-07-18 16:22:10 113
原创 leetcode-探索递归-反转字符串(改变其字符串本身)
1.题目描述:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。eg:输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]2.解题思路:3.上代码:var reverseString = function(s) { ...
2020-07-18 08:18:00 164
原创 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 172
原创 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 121
原创 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 75
原创 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 94
原创 小红书-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 611
原创 剑指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 328
原创 剑指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 105
原创 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 118
原创 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 241
原创 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 117
原创 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 89
原创 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 126
原创 javascript中的宏任务和微任务
一、宏任务1.宏任务所处得对了就是宏任务队列。2.第一个宏任务队列中只有一个任务:执行主线程得js代码3.宏任务队列可以有很多个。4.当宏任务队列中的任务全部执行完之后,会查看当前是否有微任务,当当前的伟任务执行完之后,才会执行接下来的宏任务队列5.eg:setTimeout ,setInterval,requestAnimationFrame二、微任务1.微任务所处的队列就是微任务队列2.只有一个微任务队列3.在上一个宏任务队列执行完毕后,如果有微任务队列,就会执行微任
2020-07-10 17:52:49 959 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 317
原创 理解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 219
原创 给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 883
原创 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 160
原创 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 325
原创 剑指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 157
原创 希尔排序(不稳定)-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 352
原创 选择排序-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 103
原创 数据流中的中位数——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 162
原创 大数相乘-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 309
原创 大数相加-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 139
原创 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 567
原创 堆排序算法-JS
一、堆排序算法介绍 堆是一种特殊的树形数据结构,其每个结点都有一个值,通常提到的堆都是指一棵完全二叉树,根结点的值小于(或大于)两个子结点的值,同时,根结点的两棵子树也分别是-个堆。堆排序是一种树形选择排序,在排序过程中,将R[...n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结 点和孩子结之间的内在关系来选择最小的元素。 堆一般分为大顶堆和小顶堆两种不同的类型。对于给定n个记录的序列(r(1), r(2), ... r(n)),当且仅当满足条件(r(i)≥r(2i)&am...
2020-06-25 16:42:09 332
原创 快速排序算法-js
一、介绍 快速排序是一种非常高效的排序算法, 它采用「分而治之」的思想,把大的拆分为小的,小的再拆分为更小的。其原理如下:对于-组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止。二、算法过程:(1)分解:将输入的序列array[m..n]划分成两个非空子序列array[...k]和array[k+ 1..n]使array[m...k]中任一元素的..
2020-06-25 14:34:48 469
TPS709稳压芯片数据手册
2023-10-16
三极管串联线性稳压电压Multisim仿真
2023-10-15
1N4678稳压管-数据手册
2023-10-15
鸿蒙系统开发开发资料.rar
2021-04-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人