自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

G1useppE的博客

博主非科班转码,博客主要是个人对一些前端技术的见解和一些算法题的js代码题解

  • 博客(38)
  • 收藏
  • 关注

原创 组合总和IV(js三种解法)

给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。示例 1:输入:nums = [1,2,3], target = 4输出:7解释:所有可能的组合为:(1, 1, 1, 1)(1, 1, 2)(1, 2, 1)(1, 3)(2, 1, 1)(2, 2)(3, 1)请注意,顺序不同的序列被视作不同的组合。示例 2:输入:nums = [9], tar

2022-06-09 14:10:35 584 1

原创 在排序数组中查找元素的第一个和最后一个位置

给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], target = 8输出:[3,4]示例 2:输入:nums = [5,7,7,8,8,10], target = 6输出:[-1,-1]示例 3:输入:nums = [], target =

2022-06-03 11:15:48 322

原创 下一个排列

整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。例如,arr = [1,2

2022-06-02 21:12:41 213

原创 华为机考:二叉树的层序遍历

题目:给定一棵二叉树的前序遍历和中序遍历,求其层序遍历的结果。输入:两个字符串,其长度n均小于等于26第一行为前序遍历,第二行为中序遍历二叉树中的结点名称以大写字母表示:A,B,C….最多26个结点输出:输入样例可能有多组,对于每组测试样例输出一行,为后序遍历的字符串样例输入:FDXEAGXDEFAG...

2022-05-31 17:57:59 1557

原创 整数对最小和

问题:给定两个整数数组array1、array2,数组元素按升序排列。假设从array1、array2中分别取出一个元素可构成一对元素,现在需要取出k对元素,并对取出的所有元素求和,计算和的最小值。注意:两对元素如果对应于array1、array2中两个下标均相同,则视为同一对元素。输入描述输入两行数组array1、array2,每行首个数字为数组大小size(0<size<=100)0<array1[i]<=10000<array2[i]<=1000接

2022-05-31 10:21:41 216

原创 字符串变换最小字符串

题目:给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。变换规则:交换字符串中任意两个不同位置的字符。解题思路:1、对字符串按照字典序进行排序,找到字典序最小的字符串。2、找到这个字符串中字典序最小的字符的位置。3、找到字符串中第一个跟最小字符串不相同的字符的位置,然后跟第一个最小字符进行交换。4、题目规定只能交换一次,交换后得到的就是最小字符串。代码:function changeString(str) { .

2022-05-29 00:47:44 1546 6

原创 一种字符串压缩表示的解压

题目:有一种简易压缩算法:针对全部由小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串“aaabbccccd”经过压缩成为字符串“3abb4cd”。 请您编写解压函数,根据输入的字符串,判断其是否为合法压缩过的字符串,若输入合法则输出解压缩后的字符串,否则输出字符串“!error”来报告错误。解题思路:利用正则表达式进行判断每个位置上的字符是字母还是数字,进而执行不同操作。具体题解在下面代码的注释中。代码:fu.

2022-05-28 21:14:02 754

原创 非严格递增连续数字序列

题目:输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列的长度(比如12234属于非严格递增连续数字序列)。解题思路:1、创建一个dp数组,来保存每个位置上的非严格递增连续数字序列的长度,因为是非严格,因此相邻两个数可以相等。2、初始化dp数组时应该将每个位置都填充上1,因为数字本身就可以作为一个长度为1的递增序列。3、Math.max.apply()可以调用数字中的求最大值的方法,数组本身没有求最大值的方法,但通过apply调用,appl.

2022-05-28 01:49:27 1438

原创 第K个排列

题目:给定参数n,从1到n会有n个整数:1,2,3,…,n,这n个数字共有 n! 种排列。按大小顺序升序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:"123""132""213""231""312""321"给定 n 和 k,返回第 k 个排列。解题思路:这是一道全排列的变种问题,给定参数n表示1~n范围内的整数。求所有排列,再根据参数k得到所有排列中的第k个元素。这里需要注意第k个元素转换成索引形式应该是k-1,得到所有全排列的结果集

2022-05-27 23:15:16 544

原创 数字涂色js

题目:疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。现在请你帮帮小朋友们,算算最少需要多少种颜色才能给这N个数进行上色。输入描述第一行有一个正整数N,其中1≤N≤100。第二行有N个int型数(保证输入数据在[1,100]范围中),表示黑板上各个正整数的值。输出描述输出只有一个整数,为最少需要的颜

2022-05-27 21:16:09 369

原创 工号不够用了怎么办?

题目:3020年,空间通信集团的员工人数突破20亿人,即将遇到现有工号不够用的窘境。现在,请你负责调研新工号系统。继承历史传统,新的工号系统由小写英文字母(a-z)和数字(0-9)两部分构成。新工号由一段英文字母开头,之后跟随一段数字,比如"aaahw0001","a12345","abcd1","a00"。注意新工号不能全为字母或者数字,允许数字部分有前导0或者全为0。但是过长的工号会增加同事们的记忆成本,现在给出新工号至少需要分配的人数X和新工号中字母的长度Y,求新工号中数字的最短长度Z。输

2022-05-27 18:35:24 3360

原创 用连续自然数之和来表达整数

题目:一个整数可以由连续的自然数之和来表示,给定一个整数,计算该整数有几种连续自然数之和的表达式,并打印出每一种表达式。输入描述一个目标整数t 1<= t <=1000输出描述1.该整数的所有表达式和表达式的个数如果有多种表达式,自然数个数最少的表达式优先输出2.每个表达式中按自然数递增输出具体的格式参见样例在每个测试数据结束时,输出一行"Result:X"其中X是最终的表达式个数输入9输出9=99=4+59=2+3+4Result:3说明 整数9

2022-05-27 17:14:15 416

原创 找出符合要求的字符串子串

题目:给定两个字符串,从字符串2中找出字符串1中的所有字符,去重并按照ASCII值从小到大排序输入字符串1:长度不超过1024输入字符串2:长度不超过1000000字符范围满足ASCII编码要求,按照ASCII的值由小到大排序输入描述:bachbbaaccedfg输出描述:abc解题思路:1、用哈希表存储字符串2中每个出现的字符,通过判断字符串1中的字符是否在字符串2中出现,如果出现就添加到新的数组中。2、对新的数组进行排序,并转换成字符串得到最终结果。

2022-05-27 12:26:44 417

原创 寻找同班小朋友js

题目:幼儿园两个班的小朋友排队时混在了一起每个小朋友都知道自己跟前面一个小朋友是不是同班请你帮忙把同班的小朋友找出来小朋友的编号为整数与前面一个小朋友同班用Y表示不同班用N表示输入描述:输入为空格分开的小朋友编号和是否同班标志比如 6/N 2/Y 3/N 4/Y表示一共有4位小朋友2和6是同班 3和2不同班 4和3同班小朋友总数不超过9990< 每个小朋友编号 <999不考虑输入格式错误输出两行每一行记录一班小朋友的编号 编号用空格分开并且1...

2022-05-26 22:08:09 530

原创 TLV解码js

题目:TLV 编码是按 [ Tag Length Value ] 格式进行编码的,一段码流中的信元用Tag标识, Tag在码流中 唯一不重复 ,Length表示信元Value的长度,Value表示信元的值。码流以某信元的Tag开头,Tag固定占 一个字节,Length固定占 两个字节,字节序为 小端序 。现给定TLV格式编码的码流,以及需要解码的信元Tag,请输出该信元的Value。输入码流的16进制字符中,不包括小写字母,且要求输出的16进制字符串中也不要包含小写字母;码流字符串的最大长度不

2022-05-26 15:38:19 1293

原创 电话号码的字母组合

题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"]提示:0 <= digits.

2022-05-21 01:16:02 93

原创 分割回文串js

题目:给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串 。返回 s 所有可能的分割方案。回文串 是正着读和反着读都一样的字符串。示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]]提示:1 <= s.length <= 16s 仅由小写英文字母组成。解题思路:1.题目要求返回所有的分割方案,因此可以使用回溯穷举所有的可能结果,放入到结果集当中

2022-05-19 22:32:47 223

原创 VLAN资源池

题目描述:VLAN是一种对局域网设备进行逻辑划分的技术,为了标识不同的VLAN,引入VLAN ID(1-4094之间的整数)的概念。定义一个VLAN ID的资源池(下称VLAN资源池),资源池中连续的VLAN用开始VLAN-结束VLAN表示,不连续的用单个整数表示,所有的VLAN用英文逗号连接起来。现在有一个VLAN资源池,业务需要从资源池中申请一个VLAN,需要你输出从VLAN资源池中移除申请的VLAN后的资源池。输入描述:第一行为字符串格式的VLAN资源池,第二行为业务要申请的VLA

2022-05-18 00:28:14 971

原创 数组组成的最小数字

题目:最小数字:给定一个整型数组,请从该数组中选择3个元素组成最小数字并输出(如果数组长度小于3,则选择数组中所有元素来组成最小数字)。输入描述:一行用半角逗号分割的字符串记录的整型数组,0 < 数组长度 <= 100,0 < 整数的取值范围 <= 10000。输出描述:由3个元素组成的最小数字,如果数组长度小于3,则选择数组中所有元素来组成最小数字。示例 1:输入21,30,62,5,311输出213051说明数组长度超过3,需要选3个元素组成

2022-05-17 16:04:25 2347 2

原创 整形数组按个位值排序js

题目:给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。解题思路:1.使用哈希表存储数组元素取模后的结果,对数组元素的绝对值进行%10,直到取模结果小于10为止。2.通过自定义排序,根据数组元素的取模结果大小来进行排序。代码:function sortArray(arr) { const map = new Ma.

2022-05-16 17:34:31 517

原创 勾股数元组js

题目:如果3个正整数(a,b,c)满足的关系,则称(a,b,c)为勾股数(著名的勾三股四弦五),为了探索勾股数的规律,我们定义如果勾股数(a,b,c)之间两两互质(即a与b,a与c,b与c之间均互质,没有公约数),则其为勾股数元祖(例如(3,4,5)是勾股数元祖,(6,8,10)则不是勾股数元祖)。请求出给定范围[N,M]内,所有的勾股数元祖。解题1:1.依次判断这三个数是否互质,将判断互质方法封装成一个函数。如果两个数有公约数,那么就返回1,这两个数不互质。2.只要这三个数当中任

2022-05-15 19:05:48 1268

原创 太阳能板最大面积js

题目:给航天器一侧加装长方形或正方形的太阳能板(图中的红色斜线区域),需要先安装两个支柱(图中的黑色竖条),再在支柱的中间部分固定太阳能板。但航天器不同位置的支柱长度不同,太阳能板的安装面积受限于最短一侧的那根支柱长度。如图:输入描述10,9,8,7,6,5,4,3,2,1注释,支柱至少有两根,最多10000根,能支持的高度范围1~10^9的整数,柱子的高度是无序的,例子中的递减是巧合输出描述可以支持的最大太阳板面积:(10m高支柱和5m高支柱之间)25示例1输入

2022-05-15 12:02:13 910

原创 跳跃游戏I

给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。示例 1:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。示例 2:输入:nums = [3,2,1,0,4]输出:false解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。题解2

2022-05-14 21:52:26 75

原创 不同路径I II III js

不同路径问题I II III js解法

2022-05-14 16:57:39 691

原创 js数组去重方法

js数组去重的8种方式

2022-05-13 22:19:19 246

原创 最长回文子序列js

最长回文子序列js解法

2022-05-13 21:15:37 544

原创 合唱队js题解

题目:N 位同学站成一排,音乐老师要请最少的同学出列,使得剩下的 K 位同学排成合唱队形。设K位同学从左到右依次编号为 1,2…,K ,他们的身高分别为T1​,T2​,…,TK​ ,若存在i(1≤i≤K) 使得T1​<T2​<......<Ti−1​<Ti​ 且 Ti​>Ti+1​>......>TK​,则称这K名同学排成了合唱队形。通俗来说,能找到一个同学,他的两边的同学身高都依次严格降低的队形就是合唱队形。例子:123 124 125 12

2022-05-13 17:19:57 529 1

原创 寻找身高相近的小朋友js

小明今年升学到了小学1年级,来到新班级后,发现其他小朋友身高参差不齐,然后就想基于各小朋友和自己的身高差,对他们进行排序。请帮他实现排序:输入描述第一行为正整数 h和n0<h<200 为小明的身高0<n<50 为新班级其他小朋友个数第二行为n各正整数h1 ~ hn分别是其他小朋友的身高取值范围0<hi<200且n个正整数各不相同 输出描述 输出排序结果,各正整数以空格分割 和小明身高差绝对值最小的小朋友排在前面

2022-05-12 13:14:56 1097

原创 计算GPU算力js解法

题目:为了充分发挥GPU算力, 需要尽可能多的将任务交给GPU执行, 现在有一个任务数组, 数组元素表示在这1s内新增的任务个数, 且每秒都有新增任务, 假设GPU最多一次执行n个任务, 一次执行耗时1s, 在保证GPU不空闲的情况下,最少需要多长时间执行完成。输入描述第一个参数为gpu最多执行的任务个数 取值范围1~10000第二个参数为任务数组的长度 取值范围1~10000第三个参数为任务数组 数字范围1~10000输出描述 执行完所有任务需要多少秒例子输入351 2

2022-05-11 13:50:38 834

原创 最长连续子序列js

题目描述:有N个正整数组成的一个序列,给定一个整数sum求长度最长的的连续子序列使他们的和等于sum返回次子序列的长度,如果没有满足要求的序列 返回-1备注:输入序列仅由数字和英文逗号构成,数字之间采用英文逗号分割序列长度 1<=N<=200,输入序列不考虑异常情况由题目保证输入序列满足要求示例输入:1,2,3,4,26输出:3解析:1,2,3和4,2两个序列均能满足要求,所以最长的连续序列为1,2,3 因此结果为3输入:1,2,3,4,220

2022-05-10 22:04:12 846

原创 最大子数组和js解法

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组[4,-1,2,1] 的和最大,为6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23题解1:(贪心)解题思路:贪心就是从局部最优解中,推出全局最优解。局部最..

2022-05-08 14:23:57 473

原创 01背包问题js解法

01背包问题js代码

2022-05-06 14:45:57 1686

原创 组合问题js

题目:给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]示例 2:输入:n = 1, k = 1输出:[[1]]思路:组合问题可以用回溯解决,回溯是伴随着递归的,回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案。写一个回溯算法主要分三步:1......

2022-05-05 11:50:25 634 1

原创 实现深拷贝的方法

js深拷贝

2022-05-04 02:03:49 1337

原创 最长公共子序列

1143. 最长公共子序列给定两个字符串text1和text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,返回0。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace"是"abcde"的子序列,但"aec"不是"abcde"的子序列。两个字符串的公共子序列是这两个字符串所共同拥有的子序列。示例 1:输入:text1 = "a...

2022-05-03 22:07:57 198

原创 最长回文子串

最长回文子串js解法

2022-04-29 14:09:20 387

原创 javascript判断数组的方法

js中判断是否数组类型的四种方法

2022-04-23 15:18:09 760

原创 关于斐波那契数列数列的三种解法

斐波那契数列解法

2022-04-23 12:31:13 391

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除